├── CNAME ├── _site ├── 404 │ └── index.html ├── CNAME ├── documentation │ ├── 404 │ │ └── index.html │ ├── .htaccess │ ├── favicon.ico │ └── doks-theme │ │ └── assets │ │ ├── fonts │ │ └── icons │ │ │ ├── icons.ttf │ │ │ └── icons.woff │ │ ├── images │ │ └── layout │ │ │ ├── logo.png │ │ │ └── logo-footer.png │ │ └── js │ │ ├── scripts.min.js │ │ ├── vendor │ │ ├── bootstrap │ │ │ ├── affix.min.js │ │ │ └── scrollspy.min.js │ │ └── matchHeight.min.js │ │ └── scripts.js ├── favicon.ico ├── designs │ └── favicon.psd ├── doks-theme │ └── assets │ │ ├── fonts │ │ └── icons │ │ │ ├── icons.ttf │ │ │ └── icons.woff │ │ ├── images │ │ └── layout │ │ │ ├── logo.png │ │ │ └── logo-footer.png │ │ └── js │ │ ├── scripts.min.js │ │ ├── vendor │ │ ├── bootstrap │ │ │ ├── affix.min.js │ │ │ └── scrollspy.min.js │ │ └── matchHeight.min.js │ │ └── scripts.js └── ranges │ ├── 51xx │ └── index.html │ ├── 59xx │ └── index.html │ ├── 54xx │ └── index.html │ ├── 52xx │ └── index.html │ ├── 53xx │ └── index.html │ └── 50xx │ └── index.html ├── documentation ├── 404 │ └── index.html ├── .htaccess ├── favicon.ico └── doks-theme │ └── assets │ ├── fonts │ └── icons │ │ ├── icons.ttf │ │ └── icons.woff │ ├── images │ └── layout │ │ ├── logo.png │ │ └── logo-footer.png │ └── js │ ├── scripts.min.js │ ├── vendor │ ├── bootstrap │ │ ├── affix.min.js │ │ └── scrollspy.min.js │ └── matchHeight.min.js │ └── scripts.js ├── favicon.ico ├── designs └── favicon.psd ├── doks-theme ├── assets │ ├── fonts │ │ └── icons │ │ │ ├── icons.ttf │ │ │ └── icons.woff │ ├── images │ │ └── layout │ │ │ ├── logo.png │ │ │ └── logo-footer.png │ ├── css │ │ └── style.scss │ └── js │ │ ├── scripts.min.js │ │ ├── vendor │ │ ├── bootstrap │ │ │ ├── affix.min.js │ │ │ └── scrollspy.min.js │ │ └── matchHeight.min.js │ │ └── scripts.js ├── _sass │ ├── objects │ │ ├── _content.scss │ │ ├── _section.scss │ │ ├── _error-404.scss │ │ ├── _grid.scss │ │ ├── _buttons.scss │ │ └── _icons.scss │ ├── tools │ │ ├── _hyperlinks.scss │ │ ├── _clearfix.scss │ │ ├── _lists.scss │ │ ├── _responsive-visibility.scss │ │ ├── _prefixer.scss │ │ ├── _grid-framework.scss │ │ └── _grid.scss │ ├── utilities │ │ ├── _alignment.scss │ │ └── _visibility.scss │ ├── components │ │ ├── _title-anchor-link.scss │ │ ├── _site-footer.scss │ │ ├── _micro-nav.scss │ │ ├── _example.scss │ │ ├── _hero-subheader.scss │ │ ├── _sections-list.scss │ │ ├── _page-nav.scss │ │ ├── _callout.scss │ │ ├── _nav-grid.scss │ │ ├── _social-list.scss │ │ └── _site-header.scss │ ├── themes │ │ ├── _red.scss │ │ ├── _green.scss │ │ ├── _purple.scss │ │ └── _yellow.scss │ ├── _variables.scss │ └── generic │ │ ├── _base.scss │ │ └── _code.scss ├── _includes │ ├── micro-nav.html │ ├── google-analytics.html │ ├── site-head.html │ ├── comments.html │ ├── site-header.html │ └── site-footer.html └── _layouts │ ├── error-404.html │ ├── homepage.html │ └── default.html ├── README.md ├── 404.md ├── ranges ├── 54xx.md ├── 51xx.md ├── 55xx.md ├── 50xx.md ├── 52xx.md ├── 59xx.md └── 53xx.md ├── default.md ├── kinds ├── 5202.md ├── 5002.md ├── 5304.md ├── 5900.md ├── 5303.md ├── 5901.md ├── 5001.md ├── 5250.md ├── 5000.md ├── 5200.md ├── 5302.md ├── 5905.md ├── 5500.md ├── 5301.md ├── 5400.md ├── 5300.md ├── 5100.md ├── 5201.md └── 5050.md ├── intro.md ├── _config.yml ├── index.md ├── nip89.md └── _index.html.old /CNAME: -------------------------------------------------------------------------------- 1 | www.data-vending-machines.org -------------------------------------------------------------------------------- /_site/CNAME: -------------------------------------------------------------------------------- 1 | www.data-vending-machines.org -------------------------------------------------------------------------------- /documentation/.htaccess: -------------------------------------------------------------------------------- 1 | ErrorDocument 404 /404/index.html 2 | -------------------------------------------------------------------------------- /_site/documentation/.htaccess: -------------------------------------------------------------------------------- 1 | ErrorDocument 404 /404/index.html 2 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/favicon.ico -------------------------------------------------------------------------------- /_site/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/_site/favicon.ico -------------------------------------------------------------------------------- /designs/favicon.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/designs/favicon.psd -------------------------------------------------------------------------------- /_site/designs/favicon.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/_site/designs/favicon.psd -------------------------------------------------------------------------------- /documentation/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/documentation/favicon.ico -------------------------------------------------------------------------------- /_site/documentation/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/_site/documentation/favicon.ico -------------------------------------------------------------------------------- /doks-theme/assets/fonts/icons/icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/doks-theme/assets/fonts/icons/icons.ttf -------------------------------------------------------------------------------- /doks-theme/assets/fonts/icons/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/doks-theme/assets/fonts/icons/icons.woff -------------------------------------------------------------------------------- /doks-theme/assets/images/layout/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/doks-theme/assets/images/layout/logo.png -------------------------------------------------------------------------------- /_site/doks-theme/assets/fonts/icons/icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/_site/doks-theme/assets/fonts/icons/icons.ttf -------------------------------------------------------------------------------- /_site/doks-theme/assets/fonts/icons/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/_site/doks-theme/assets/fonts/icons/icons.woff -------------------------------------------------------------------------------- /_site/doks-theme/assets/images/layout/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/_site/doks-theme/assets/images/layout/logo.png -------------------------------------------------------------------------------- /doks-theme/assets/images/layout/logo-footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/doks-theme/assets/images/layout/logo-footer.png -------------------------------------------------------------------------------- /_site/doks-theme/assets/images/layout/logo-footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/_site/doks-theme/assets/images/layout/logo-footer.png -------------------------------------------------------------------------------- /documentation/doks-theme/assets/fonts/icons/icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/documentation/doks-theme/assets/fonts/icons/icons.ttf -------------------------------------------------------------------------------- /documentation/doks-theme/assets/fonts/icons/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/documentation/doks-theme/assets/fonts/icons/icons.woff -------------------------------------------------------------------------------- /documentation/doks-theme/assets/images/layout/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/documentation/doks-theme/assets/images/layout/logo.png -------------------------------------------------------------------------------- /_site/documentation/doks-theme/assets/fonts/icons/icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/_site/documentation/doks-theme/assets/fonts/icons/icons.ttf -------------------------------------------------------------------------------- /_site/documentation/doks-theme/assets/fonts/icons/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/_site/documentation/doks-theme/assets/fonts/icons/icons.woff -------------------------------------------------------------------------------- /_site/documentation/doks-theme/assets/images/layout/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/_site/documentation/doks-theme/assets/images/layout/logo.png -------------------------------------------------------------------------------- /documentation/doks-theme/assets/images/layout/logo-footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/documentation/doks-theme/assets/images/layout/logo-footer.png -------------------------------------------------------------------------------- /_site/documentation/doks-theme/assets/images/layout/logo-footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/believethehype/data-vending-machines/HEAD/_site/documentation/doks-theme/assets/images/layout/logo-footer.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # data-vending-machines.org 2 | 3 | This is the website for [data-vending-machines.org](https://www.data-vending-machines.org/), which specs the different NIP-90 kinds. 4 | 5 | # License 6 | 7 | MIT -------------------------------------------------------------------------------- /doks-theme/_sass/objects/_content.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Content (objects/_content.scss) 3 | */ 4 | 5 | /* ----- Headings ----- */ 6 | .content { 7 | > :first-child { 8 | margin-top: 0; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /doks-theme/_sass/tools/_hyperlinks.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Hyperlinks (tools/_hyperlinks.scss) 3 | */ 4 | 5 | /* ----- Reset ----- */ 6 | @mixin link-reset { 7 | border-bottom: 0; 8 | padding: 0; 9 | } 10 | -------------------------------------------------------------------------------- /404.md: -------------------------------------------------------------------------------- 1 | --- 2 | # Page settings 3 | layout: error-404 4 | title: 404 - Page not found 5 | 6 | # Content settings 7 | page_content: 8 | title: 404 / Page not found 9 | message: The link you clicked may be broken
or the page may have been removed. 10 | --- 11 | -------------------------------------------------------------------------------- /doks-theme/_sass/tools/_clearfix.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Clearfix (tools/_clearfix.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | @mixin clearfix { 7 | &::before, 8 | &::after { 9 | content: ' '; 10 | display: table; 11 | } 12 | 13 | &::after { 14 | clear: both; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /doks-theme/_sass/tools/_lists.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Lists (tools/_lists.scss) 3 | */ 4 | 5 | /* ----- Horizontal list ----- */ 6 | @mixin list-horizontal { 7 | li { 8 | float: left; 9 | padding: 0; 10 | margin-bottom: 0; 11 | 12 | &::before { 13 | display: none; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ranges/54xx.md: -------------------------------------------------------------------------------- 1 | --- 2 | # Page settings 3 | layout: homepage 4 | keywords: nostr 5 | 6 | # Hero section 7 | title: Analytics 8 | description: "Jobs where the goal is to analyze nostr events" 9 | buttons: 10 | - content: Back 11 | url: '/' 12 | external_url: false 13 | 14 | # Grid navigation 15 | grid_navigation: 16 | - title: Nostr Event Count 17 | excerpt: "Used to count nostr events. Kind 5400" 18 | cta: View 19 | url: '/kinds/5400' 20 | --- 21 | -------------------------------------------------------------------------------- /doks-theme/_includes/micro-nav.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 11 |
12 |
13 | -------------------------------------------------------------------------------- /doks-theme/_sass/objects/_section.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Section (objects/_section.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | .section { 7 | padding: 3.75rem 0 (3.75rem - 1.25rem) 0; 8 | 9 | @media (min-width: $screen-sm-min) { 10 | padding: 6.25rem 0 (6.25rem - 1.25rem) 0; 11 | } 12 | } 13 | 14 | /* ----- Variations ----- */ 15 | .section--darker-theme-color-bg { 16 | background-color: darken($color-theme-blue, 3%); 17 | } 18 | 19 | .section--grey { 20 | background-color: $color-section-grey; 21 | } 22 | -------------------------------------------------------------------------------- /ranges/51xx.md: -------------------------------------------------------------------------------- 1 | --- 2 | # Page settings 3 | layout: homepage 4 | keywords: nostr 5 | 6 | # Hero section 7 | title: Image Manipulation 8 | buttons: 9 | - content: Back 10 | url: '/' 11 | external_url: false 12 | # - icon: github 13 | # content: Button with icon 14 | # url: '#' 15 | # external_url: true 16 | 17 | 18 | # Grid navigation 19 | grid_navigation: 20 | - title: Image Generation 21 | excerpt: "Kind 5100" 22 | cta: View 23 | url: '/kinds/5100' 24 | --- -------------------------------------------------------------------------------- /doks-theme/_sass/objects/_error-404.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Error 404 (objects/_error-404.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | .error-404 { 7 | background-color: $color-theme-blue; 8 | text-align: center; 9 | 10 | .align-container { 11 | height: 100vh; 12 | } 13 | } 14 | 15 | /* ----- Title ----- */ 16 | .error-404__title { 17 | color: $color-dark-blue; 18 | font-weight: normal; 19 | font-size: $font-size-h3; 20 | margin-top: 0; 21 | 22 | @media (min-width: $screen-sm-min) { 23 | font-size: $font-size-h1; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /ranges/55xx.md: -------------------------------------------------------------------------------- 1 | --- 2 | # Page settings 3 | layout: homepage 4 | keywords: nostr 5 | 6 | # Hero section 7 | title: Software Analysis 8 | description: "Jobs where the goal is to analyze Files/Code" 9 | buttons: 10 | - content: Back 11 | url: "/" 12 | external_url: false 13 | # - icon: github 14 | # content: Button with icon 15 | # url: '#' 16 | # external_url: true 17 | 18 | # Grid navigation 19 | grid_navigation: 20 | - title: Malware Scanning 21 | excerpt: "Kind 5500" 22 | cta: View 23 | url: "/kinds/5500" 24 | --- 25 | -------------------------------------------------------------------------------- /default.md: -------------------------------------------------------------------------------- 1 | --- 2 | # Page settings 3 | layout: default 4 | keywords: 5 | comments: false 6 | 7 | # Hero section 8 | title: Page title 9 | description: Page description 10 | 11 | # Author box 12 | author: 13 | title: About Author 14 | title_url: '#' 15 | external_url: true 16 | description: Author description 17 | 18 | # Micro navigation 19 | micro_nav: true 20 | 21 | # Page navigation 22 | page_nav: 23 | prev: 24 | content: Previous page 25 | url: '#' 26 | next: 27 | content: Next page 28 | url: '#' 29 | --- 30 | 31 | Write your markdown here ... 32 | -------------------------------------------------------------------------------- /doks-theme/_sass/utilities/_alignment.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Alignment (utilities/_alignment.scss) 3 | */ 4 | 5 | /* ----- Vertical alignment ----- */ 6 | .align-container { 7 | display: table; 8 | width: 100%; 9 | height: 100%; 10 | } 11 | 12 | .align-inner { 13 | display: table-cell; 14 | vertical-align: middle; 15 | } 16 | 17 | .align-inner--top { 18 | vertical-align: top; 19 | } 20 | 21 | .align-inner--bottom { 22 | vertical-align: bottom; 23 | } 24 | 25 | /* ----- Horizontal alignment ----- */ 26 | .align-right { 27 | @media (min-width: $screen-sm-min) { 28 | text-align: right; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /doks-theme/_sass/tools/_responsive-visibility.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Responsive visibility (tools/_responsive-visibility.scss) 3 | */ 4 | 5 | /* ----- Visibility ----- */ 6 | @mixin responsive-visibility($parent) { 7 | #{$parent} { 8 | display: block !important; 9 | } 10 | table#{$parent} { display: table !important; } 11 | tr#{$parent} { display: table-row !important; } 12 | th#{$parent}, 13 | td#{$parent} { display: table-cell !important; } 14 | } 15 | 16 | /* ----- Invisibility ----- */ 17 | @mixin responsive-invisibility($parent) { 18 | #{$parent} { 19 | display: none !important; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /doks-theme/_includes/google-analytics.html: -------------------------------------------------------------------------------- 1 | {% if jekyll.environment == "production" and site.doks.google_analytics.tracking_code %} 2 | 11 | {% endif %} 12 | -------------------------------------------------------------------------------- /doks-theme/_sass/components/_title-anchor-link.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Title anchor link (components/_title-anchor-link.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | .title-anchor-link { 7 | @include link-reset; 8 | display: block; 9 | position: absolute; 10 | opacity: 0; 11 | @include translate3d(-100%, 0, 0); 12 | transition: opacity .2s; 13 | padding-right: .625rem; 14 | } 15 | 16 | h1, .h1, 17 | h2, .h2, 18 | h3, .h3, 19 | h4, .h4, 20 | h5, .h5, 21 | h6, .h6 { 22 | &:hover, 23 | &:focus, 24 | &:active { 25 | .title-anchor-link { 26 | opacity: .4; 27 | 28 | &:hover, 29 | &:focus, 30 | &:active { 31 | opacity: 1; 32 | } 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /ranges/50xx.md: -------------------------------------------------------------------------------- 1 | --- 2 | # Page settings 3 | layout: homepage 4 | keywords: nostr 5 | 6 | # Hero section 7 | title: Text Extraction 8 | buttons: 9 | - content: Back 10 | url: '/' 11 | external_url: false 12 | 13 | # Grid navigation 14 | grid_navigation: 15 | - title: Text Extraction 16 | excerpt: "Kind 5000" 17 | cta: View 18 | url: '/kinds/5000' 19 | - title: Text Summarization 20 | excerpt: "Kind 5001" 21 | cta: View 22 | url: '/kinds/5001' 23 | - title: Text Translation 24 | excerpt: "Kind 5002" 25 | cta: View 26 | url: '/kinds/5002' 27 | - title: Text Generation 28 | excerpt: "Kind 5050" 29 | cta: View 30 | url: '/kinds/5050' 31 | --- -------------------------------------------------------------------------------- /kinds/5202.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Image-to-Video Conversion 4 | description: Job request to convert a static Image to a a short animated video clip 5 | --- 6 | 7 | # Input 8 | 9 | Clients provide a link to the input image. The link should point to an image file. 10 | 11 | # Params 12 | 13 | Params might be added at a later stage. 14 | 15 | # Output 16 | A link to the generated video 17 | 18 | 19 | # Example 20 | 21 | ## Generates the output based on an image link 22 | 23 | ```json 24 | { 25 | "content": "", 26 | "kind": 5202, 27 | "tags": [ 28 | [ "i", "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/svd/rocket.png", "url" ], 29 | ] 30 | } 31 | ``` 32 | -------------------------------------------------------------------------------- /doks-theme/_layouts/error-404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% include site-head.html %} 5 | 6 | 7 |
8 |
9 |

{{ page.page_content.title }}

10 | {% if page.page_content.message %} 11 |

{{ page.page_content.message }}

12 | {% endif %} 13 | 14 | 15 | Go back home 16 | 17 |
18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /kinds/5002.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Translation 4 | description: Translate input(s) 5 | --- 6 | 7 | # Input 8 | 9 | Job requests SHOULD include 1 one or more inputs. Inputs should be readily available and not require any form of text-processing or extraction (i.e. inputs should not point to audio-files or HTML URLs) 10 | 11 | # Params 12 | 13 | ## `language` 14 | 15 | Specifies the desired output language 16 | 17 | ``` 18 | [ "param", "language", "es" ] 19 | ``` 20 | 21 | # Output 22 | 23 | Including but not limited to: 24 | 25 | * `text/plain` 26 | 27 | 28 | # Example 29 | 30 | ## Translate an event to spanish 31 | 32 | ```json 33 | { 34 | "content": "", 35 | "kind": 5002, 36 | "tags": [ 37 | [ "i", "", "event" ], 38 | [ "param", "language", "es" ] 39 | ] 40 | } 41 | ``` -------------------------------------------------------------------------------- /doks-theme/_sass/themes/_red.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Red (themes/_red.scss) 3 | */ 4 | 5 | /* ----- Hero subheader ----- */ 6 | .red { 7 | .hero-subheader { 8 | background-color: $color-theme-red; 9 | } 10 | } 11 | 12 | /* ----- Nav grid ----- */ 13 | .red { 14 | .nav-grid__item { 15 | background-color: $color-theme-red; 16 | 17 | &:hover, 18 | &:active, 19 | &:focus { 20 | background-color: $color-theme-red; 21 | } 22 | } 23 | } 24 | 25 | /* ----- Section ----- */ 26 | .red { 27 | .section--darker-theme-color-bg { 28 | background-color: darken($color-theme-red, 3%); 29 | } 30 | } 31 | 32 | /* ----- Page nav ----- */ 33 | .red { 34 | .page-nav { 35 | background-color: $color-theme-red; 36 | } 37 | } 38 | 39 | /* ----- Error 404 ----- */ 40 | .red { 41 | &.error-404 { 42 | background-color: $color-theme-red; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /doks-theme/_sass/components/_site-footer.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Site footer (components/_site-footer.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | .site-footer { 7 | background-color: $color-footer-bg; 8 | padding: 3.75rem 0 (3.75rem - 1.25rem) 0; 9 | 10 | hr { 11 | width: 5.625rem; 12 | } 13 | } 14 | 15 | /* ----- Logo ----- */ 16 | .site-footer__logo { 17 | @include link-reset; 18 | display: inline-block; 19 | color: $color-footer-copyright; 20 | font-family: $font-family-secondary; 21 | font-size: $font-size-h3; 22 | font-weight: 700; 23 | vertical-align: top; 24 | margin: 0 0 1.25rem 0; 25 | 26 | img { 27 | display: block; 28 | width: 15.625rem; 29 | } 30 | } 31 | 32 | /* ----- Copyright ----- */ 33 | .site-footer__copyright { 34 | color: $color-footer-copyright; 35 | font-size: .875em; 36 | line-height: $line-height-base; 37 | } 38 | -------------------------------------------------------------------------------- /doks-theme/_sass/components/_micro-nav.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Micro nav (components/_micro-nav.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | .micro-nav { 7 | color: $color-white; 8 | background-color: $color-dark-blue; 9 | padding: .9375rem 0; 10 | text-align: center; 11 | 12 | @media (min-width: $screen-sm-min) { 13 | text-align: left; 14 | } 15 | } 16 | 17 | /* ----- Back ----- */ 18 | .micro-nav__back { 19 | @include link-reset; 20 | display: inline-block; 21 | font-weight: 500; 22 | font-family: $font-family-secondary; 23 | text-transform: uppercase; 24 | 25 | &:hover, 26 | &:focus, 27 | &:active { 28 | .icon { 29 | @include translate(-.3125rem, 0); 30 | } 31 | } 32 | 33 | .icon { 34 | display: inline-block; 35 | margin-right: .5rem; 36 | position: relative; 37 | bottom: -.125rem; 38 | transition: transform .2s; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /doks-theme/_sass/themes/_green.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Green (themes/_green.scss) 3 | */ 4 | 5 | /* ----- Hero subheader ----- */ 6 | .green { 7 | .hero-subheader { 8 | background-color: $color-theme-green; 9 | } 10 | } 11 | 12 | /* ----- Nav grid ----- */ 13 | .green { 14 | .nav-grid__item { 15 | background-color: $color-theme-green; 16 | 17 | &:hover, 18 | &:active, 19 | &:focus { 20 | background-color: $color-theme-green; 21 | } 22 | } 23 | } 24 | 25 | /* ----- Section ----- */ 26 | .green { 27 | .section--darker-theme-color-bg { 28 | background-color: darken($color-theme-green, 3%); 29 | } 30 | } 31 | 32 | /* ----- Page nav ----- */ 33 | .green { 34 | .page-nav { 35 | background-color: $color-theme-green; 36 | } 37 | } 38 | 39 | /* ----- Error 404 ----- */ 40 | .green { 41 | &.error-404 { 42 | background-color: $color-theme-green; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /ranges/52xx.md: -------------------------------------------------------------------------------- 1 | --- 2 | # Page settings 3 | layout: homepage 4 | keywords: nostr 5 | 6 | # Hero section 7 | title: Video/Audio Manipulation 8 | buttons: 9 | - content: Back 10 | url: '/' 11 | external_url: false 12 | # - icon: github 13 | # content: Button with icon 14 | # url: '#' 15 | # external_url: true 16 | 17 | 18 | # Grid navigation 19 | grid_navigation: 20 | - title: Video Conversion 21 | excerpt: "Kind 5200" 22 | cta: View 23 | url: '/kinds/5200' 24 | - title: Video Translation 25 | excerpt: "Kind 5201" 26 | cta: View 27 | url: '/kinds/5201' 28 | - title: Image-to-Video Conversion 29 | excerpt: "Kind 5202" 30 | cta: View 31 | url: '/kinds/5202' 32 | - title: Text-to-Speech 33 | excerpt: "Kind 5250" 34 | cta: View 35 | url: '/kinds/5250' 36 | --- 37 | -------------------------------------------------------------------------------- /doks-theme/_includes/site-head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ page.title }} 5 | {% if page.description %} 6 | 7 | {% endif %} 8 | {% if page.keywords %} 9 | 10 | {% endif %} 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /doks-theme/_sass/themes/_purple.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Purple (themes/_purple.scss) 3 | */ 4 | 5 | /* ----- Hero subheader ----- */ 6 | .purple { 7 | .hero-subheader { 8 | background-color: $color-theme-purple; 9 | } 10 | } 11 | 12 | /* ----- Nav grid ----- */ 13 | .purple { 14 | .nav-grid__item { 15 | background-color: $color-theme-purple; 16 | 17 | &:hover, 18 | &:active, 19 | &:focus { 20 | background-color: $color-theme-purple; 21 | } 22 | } 23 | } 24 | 25 | /* ----- Section ----- */ 26 | .purple { 27 | .section--darker-theme-color-bg { 28 | background-color: darken($color-theme-purple, 3%); 29 | } 30 | } 31 | 32 | /* ----- Page nav ----- */ 33 | .purple { 34 | .page-nav { 35 | background-color: $color-theme-purple; 36 | } 37 | } 38 | 39 | /* ----- Error 404 ----- */ 40 | .purple { 41 | &.error-404 { 42 | background-color: $color-theme-purple; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /doks-theme/_sass/themes/_yellow.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Yellow (themes/_yellow.scss) 3 | */ 4 | 5 | /* ----- Hero subheader ----- */ 6 | .yellow { 7 | .hero-subheader { 8 | background-color: $color-theme-yellow; 9 | } 10 | } 11 | 12 | /* ----- Nav grid ----- */ 13 | .yellow { 14 | .nav-grid__item { 15 | background-color: $color-theme-yellow; 16 | 17 | &:hover, 18 | &:active, 19 | &:focus { 20 | background-color: $color-theme-yellow; 21 | } 22 | } 23 | } 24 | 25 | /* ----- Section ----- */ 26 | .yellow { 27 | .section--darker-theme-color-bg { 28 | background-color: darken($color-theme-yellow, 3%); 29 | } 30 | } 31 | 32 | /* ----- Page nav ----- */ 33 | .yellow { 34 | .page-nav { 35 | background-color: $color-theme-yellow; 36 | } 37 | } 38 | 39 | /* ----- Error 404 ----- */ 40 | .yellow { 41 | &.error-404 { 42 | background-color: $color-theme-yellow; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /ranges/59xx.md: -------------------------------------------------------------------------------- 1 | --- 2 | # Page settings 3 | layout: homepage 4 | keywords: nostr 5 | 6 | # Hero section 7 | title: Others 8 | description: "Jobs that don't fit neatly in other categories" 9 | buttons: 10 | - content: Back 11 | url: '/' 12 | external_url: false 13 | # - icon: github 14 | # content: Button with icon 15 | # url: '#' 16 | # external_url: true 17 | 18 | 19 | # Grid navigation 20 | grid_navigation: 21 | - title: Nostr Event Time Stamping 22 | excerpt: "Generate NIP-03 event timestamps. Kind 5900" 23 | cta: View 24 | url: '/kinds/5900' 25 | - title: Bitcoin OP_RETURN Creation 26 | excerpt: "Kind 5901" 27 | cta: View 28 | url: '/kinds/5901' 29 | - title: Nostr Event Publish Schedule 30 | excerpt: "Schedule nostr events for future publishing. Kind 5905" 31 | cta: View 32 | url: '/kinds/5905' 33 | --- 34 | -------------------------------------------------------------------------------- /doks-theme/_sass/tools/_prefixer.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Prefixer (tools/_prefixer.scss) 3 | */ 4 | 5 | /* ----- Box sizing ----- */ 6 | @mixin box-sizing ($value) { 7 | -webkit-box-sizing: $value; 8 | -moz-box-sizing: $value; 9 | box-sizing: $value; 10 | } 11 | 12 | /* ----- Transform ----- */ 13 | // Rotate 14 | @mixin rotate ($deg) { 15 | -webkit-transform: rotate(#{$deg}deg); 16 | -moz-transform: rotate(#{$deg}deg); 17 | -ms-transform: rotate(#{$deg}deg); 18 | transform: rotate(#{$deg}deg); 19 | } 20 | 21 | // Translate 22 | @mixin translate ($x, $y) { 23 | -webkit-transform: translate($x, $y); 24 | -moz-transform: translate($x, $y); 25 | -ms-transform: translate($x, $y); 26 | transform: translate($x, $y); 27 | } 28 | 29 | // Translate 3D 30 | @mixin translate3d ($x, $y, $z) { 31 | -webkit-transform: translate3d($x, $y, $z); 32 | -moz-transform: translate3d($x, $y, $z); 33 | transform: translate3d($x, $y, $z); 34 | } 35 | -------------------------------------------------------------------------------- /kinds/5304.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Nostr Gallery Entry Discovery 4 | description: Job find Profile Gallery entries 5 | --- 6 | 7 | # Output 8 | 9 | A `content` JSON-stringified list of tags. Tags SHOULD be `e` and contain Kind 1163 events (NIP93). 10 | 11 | # Params 12 | 13 | * `max_results`: Maximum number of events to return (Optional parameter) 14 | 15 | # How clients can use this 16 | 17 | Clients can ask a Search DVM to return profiles based on certain filters. 18 | 19 | 20 | # Example 21 | 22 | #### Request 23 | ```json 24 | { 25 | "content": "", 26 | 27 | "kind": 5304, 28 | "tags": 29 | [ 30 | ["param","max_results","500"] 31 | ] 32 | } 33 | ``` 34 | 35 | #### Response 36 | ```json 37 | { 38 | "kind": 6304, 39 | "content": ' 40 | [ "e", "<...>" ], 41 | [ "e", "<...>" ], 42 | [ "e", "<...>" ], 43 | [ "e", "<...>" ] 44 | ' 45 | } 46 | ``` -------------------------------------------------------------------------------- /intro.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Introduction 4 | description: Nostr Data Vending Machines 5 | --- 6 | 7 | # Rationale 8 | Nostr can act as a marketplace for data processing, where users request jobs to be processed in certain ways (e.g., "speech-to-text", "summarization", etc.), but they don't necessarily care about "who" processes the data. 9 | 10 | This NIP is not to be confused with a 1:1 marketplace; instead, it describes a flow where a user announces a desired output, willingness to pay, and service providers compete to fulfill the job requirement in the best way possible. 11 | 12 | # Actors 13 | There are two actors in the workflow described in this NIP: 14 | * Customers (npubs who request a job) 15 | * Service providers (npubs who fulfill jobs) 16 | 17 | # Links 18 | 19 | * [Podcast between `@pablof7z` and `@theguyswan`](https://www.youtube.com/watch?v=WtpY_pQ3zcI) 20 | * [Vendata.io](https://vendata.io) -- General-purpose DVM client -------------------------------------------------------------------------------- /kinds/5900.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Nostr Event Time Stamping 4 | description: NIP-03 Timestamping of nostr events 5 | --- 6 | 7 | # Input 8 | 9 | Event ID to be stamped. 10 | 11 | # Output 12 | 13 | `content` MUST contain the event ID of the `kind:1040` event. 14 | 15 | - Retrieving counts for list pages (number of messages in a conversation, number of lists on a profile) 16 | - Getting metadata for tags (this topic has been used x times) 17 | 18 | # Example 19 | 20 | ## Request 21 | 22 | ```json 23 | { 24 | "content": "", 25 | "kind": 5900, 26 | "pubkey": "", 27 | "tags": [ 28 | [ "i", "", "event" ], 29 | ] 30 | } 31 | ``` 32 | 33 | ## Desponse 34 | 35 | ```json 36 | { 37 | "content": "", 38 | "kind": 6900, 39 | "tags": [ 40 | [ "i", "", "event" ], 41 | [ "p", "" ], 42 | [ "e", "" ] 43 | ] 44 | } 45 | ``` 46 | -------------------------------------------------------------------------------- /kinds/5303.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Nostr People Search 4 | description: Job to search for profiles based on a prompt 5 | --- 6 | 7 | # Input 8 | Text to be included in the search 9 | 10 | # Output 11 | 12 | A `content` JSON-stringified list of tags. Tags SHOULD be `p`. 13 | 14 | # Params 15 | 16 | * `max_results`: Maximum number of events to return (Optional parameter) 17 | 18 | # How clients can use this 19 | 20 | Clients can ask a Search DVM to return profiles based on certain filters. 21 | 22 | 23 | # Example 24 | 25 | #### Request 26 | ```json 27 | { 28 | "content": "", 29 | 30 | "kind": 5303, 31 | "tags": 32 | [ 33 | [ "i", "Jack", "text" ], 34 | ["param","max_results","500"] 35 | ] 36 | } 37 | ``` 38 | 39 | #### Response 40 | ```json 41 | { 42 | "kind": 6303, 43 | "content": ' 44 | [ "p", "<...>" ], 45 | [ "p", "<...>" ], 46 | [ "p", "<...>" ], 47 | [ "p", "<...>" ] 48 | ' 49 | } 50 | ``` -------------------------------------------------------------------------------- /kinds/5901.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: OP_RETURN Creation 4 | description: Create a bitcoin transaction with an OP_RETURN 5 | --- 6 | 7 | # Input 8 | 9 | Text to be included in the OP_RETURN, max 80 bytes when UTF-8 encoded 10 | 11 | # Output 12 | 13 | `content` MUST contain the bitcoin transaction id of the resulting transaction. 14 | 15 | # Example 16 | 17 | ## Request 18 | 19 | ```json 20 | { 21 | "content": "", 22 | "kind": 5901, 23 | "pubkey": "", 24 | "tags": [ 25 | ["i", "09/01/24 SEC Chairman on the brink of second ETF approval", "text"] 26 | ] 27 | } 28 | ``` 29 | 30 | ## Response 31 | 32 | ```json 33 | { 34 | "content": "07bcf35c548e402e2219fbd846d4e736418d777c38bda6465e7f2956fd63e948", 35 | "kind": 6901, 36 | "tags": [ 37 | [ 38 | "i", 39 | "09/01/24 SEC Chairman on the brink of second ETF approval" 40 | ], 41 | [ 42 | "p", 43 | "" 44 | ], 45 | [ 46 | "e", 47 | "" 48 | ] 49 | ] 50 | } 51 | ``` 52 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # Theme settings 2 | doks: 3 | baseurl: 4 | color_theme: blue # Available themes: blue (default), green, purple, red and yellow 5 | header: 6 | logo: 7 | text: Data Vending Machine 8 | image: 9 | nav: 10 | - item_name: Home 11 | item_url: / 12 | - item_name: NIP-90 13 | item_url: https://github.com/nostr-protocol/nips/blob/vending-machine/90.md 14 | footer: 15 | content: 16 | logo: 17 | text: Data Vending Machine 18 | image: 19 | copyright: MIT License 20 | social_list: 21 | - network_name: github 22 | profile_url: "https://github.com/pablof7z/data-vending-machines.org" 23 | 24 | # SASS settings 25 | sass: 26 | sass_dir: ./doks-theme/_sass 27 | style: :compressed 28 | 29 | # Jekyll settings 30 | layouts_dir: ./doks-theme/_layouts 31 | includes_dir: ./doks-theme/_includes 32 | exclude: [ 'README.md', 'CHANGELOG.md' ] 33 | permalink: /:title/ 34 | -------------------------------------------------------------------------------- /doks-theme/_sass/components/_example.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Example (components/_example.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | .example { 7 | overflow: hidden; 8 | color: $color-white; 9 | background-color: $color-pre-border; 10 | padding: .625rem .625rem .625rem 1.4375rem; 11 | 12 | &::before { 13 | content: 'Example'; 14 | display: inline-block; 15 | margin-top: .25rem; 16 | margin-bottom: .25rem; 17 | text-transform: uppercase; 18 | } 19 | 20 | a { 21 | @include link-reset; 22 | display: block; 23 | float: right; 24 | color: $color-dark-blue; 25 | font-size: .875em; 26 | background-color: $color-white; 27 | border-radius: 1.25rem; 28 | padding: .25rem 1.25rem .3125rem 1.25rem; 29 | transition: background-color .2s; 30 | 31 | &:hover, 32 | &:focus, 33 | &:active { 34 | background-color: $color-yellow; 35 | } 36 | 37 | &::after { 38 | @extend .icon; 39 | content: '\e922'; 40 | display: inline-block; 41 | position: relative; 42 | top: .125rem; 43 | margin-left: .5rem; 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /doks-theme/_includes/comments.html: -------------------------------------------------------------------------------- 1 |
2 | 22 | 23 | -------------------------------------------------------------------------------- /kinds/5001.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Summarization 4 | description: Summarize input(s) 5 | --- 6 | 7 | # Input 8 | 9 | Job requests SHOULD include 1 one or more inputs. Inputs should be readily available and not require any form of text-processing or extraction (i.e. inputs should not point to audio-files or HTML URLs) 10 | 11 | # Params 12 | 13 | ## `length` 14 | 15 | Specifies the desired length in `words` or `paragraphs`. 16 | 17 | ``` 18 | [ "param", "length", "" ] 19 | ``` 20 | 21 | # Output 22 | 23 | Including but not limited to: 24 | 25 | * `text/plain` 26 | * `text/markdown` 27 | 28 | # Example 29 | 30 | ## Summarize 4-events and the output of one DVM job-request into 10 paragraphs 31 | 32 | ```json 33 | { 34 | "content": "", 35 | "kind": 5001, 36 | "tags": [ 37 | [ "i", "", "event" ], 38 | [ "i", "", "event" ], 39 | [ "i", "", "event" ], 40 | [ "i", "", "event" ], 41 | [ "i", "", "job" ], 42 | [ "param", "length", "10 paragraphs" ] 43 | ] 44 | } 45 | ``` -------------------------------------------------------------------------------- /doks-theme/_sass/objects/_grid.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Grid (objects/_grid.scss) 3 | */ 4 | 5 | /* ----- Container widths ----- */ 6 | .container { 7 | @include container-fixed; 8 | 9 | @media (min-width: $screen-sm-min) { 10 | width: $container-sm; 11 | } 12 | 13 | @media (min-width: $screen-md-min) { 14 | width: $container-md; 15 | } 16 | 17 | @media (min-width: $screen-lg-min) { 18 | width: $container-lg; 19 | } 20 | } 21 | 22 | /* ----- Fluid container ----- */ 23 | .container-fluid { 24 | @include container-fixed; 25 | } 26 | 27 | /* ----- Row ----- */ 28 | .row { 29 | @include make-row; 30 | } 31 | 32 | /* ----- Columns ----- */ 33 | @include make-grid-columns; 34 | 35 | /* ----- Extra small grid ----- */ 36 | @include make-grid(xs); 37 | 38 | /* ----- Small grid ----- */ 39 | @media (min-width: $screen-sm-min) { 40 | @include make-grid(sm); 41 | } 42 | 43 | /* ----- Medium grid ----- */ 44 | @media (min-width: $screen-md-min) { 45 | @include make-grid(md); 46 | } 47 | 48 | /* ----- Large grid ----- */ 49 | @media (min-width: $screen-lg-min) { 50 | @include make-grid(lg); 51 | } 52 | -------------------------------------------------------------------------------- /_site/404/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 404 - Page not found 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 |
18 |

404 / Page not found

19 | 20 |

The link you clicked may be broken
or the page may have been removed.

21 | 22 | 23 | 24 | Go back home 25 | 26 |
27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /documentation/404/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 404 - Page not found 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 |
18 |

404 / Page not found

19 | 20 |

The link you clicked may be broken
or the page may have been removed.

21 | 22 | 23 | 24 | Go back home 25 | 26 |
27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /_site/documentation/404/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 404 - Page not found 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 |
18 |

404 / Page not found

19 | 20 |

The link you clicked may be broken
or the page may have been removed.

21 | 22 | 23 | 24 | Go back home 25 | 26 |
27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /ranges/53xx.md: -------------------------------------------------------------------------------- 1 | --- 2 | # Page settings 3 | layout: homepage 4 | keywords: nostr 5 | 6 | # Hero section 7 | title: Discovery 8 | description: "Jobs where the goal is to discover something" 9 | buttons: 10 | - content: Back 11 | url: '/' 12 | external_url: false 13 | # - icon: github 14 | # content: Button with icon 15 | # url: '#' 16 | # external_url: true 17 | 18 | 19 | # Grid navigation 20 | grid_navigation: 21 | - title: Nostr Content Discovery 22 | excerpt: "Used to discover nostr-native content. Kind 5300" 23 | cta: View 24 | url: '/kinds/5300' 25 | - title: Nostr People Discovery 26 | excerpt: "Used to discover nostr npubs. Kind 5301" 27 | cta: View 28 | url: '/kinds/5301' 29 | - title: Nostr Content Search 30 | excerpt: "Used to search for notes. Kind 5302" 31 | cta: View 32 | url: '/kinds/5302' 33 | - title: Nostr People Search 34 | excerpt: "Used to search for profiles. Kind 5303" 35 | cta: View 36 | url: '/kinds/5303' 37 | - title: Nostr Profile Gallery Entry Discovery 38 | excerpt: "Used to discover profile gallery entries. Kind 5304" 39 | cta: View 40 | url: '/kinds/5304' 41 | --- -------------------------------------------------------------------------------- /kinds/5250.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Text-to-Speech Generation 4 | description: Job request to convert text input to an audio file. 5 | --- 6 | 7 | # Input 8 | Clients provide an Input such as a prompt, an event or job ID. 9 | 10 | 11 | ## `language` 12 | 13 | Specifies the output language of the video. Input language is auto-detected. 14 | 15 | ``` 16 | [ "param", "language", "en"] 17 | ``` 18 | 19 | # Params 20 | 21 | 22 | | ID | Language | 23 | | ---- | --------- | 24 | | en | English | 25 | | es | Spanish | 26 | | fr | French | 27 | | de | German | 28 | | it | Italian | 29 | | pt | Portugese | 30 | | pl | Polish | 31 | | tr | Turkish | 32 | | ru | Russian | 33 | | cs | Czech | 34 | | ar | Arabic | 35 | | zh-cn| Chinese | 36 | | ja | Japanese | 37 | | hu | Hungarian | 38 | | ko | Korean | 39 | 40 | 41 | 42 | # Output 43 | 44 | A link to the generated audio. 45 | 46 | # Example 47 | 48 | ## Generates the output based on the input link and params 49 | 50 | ```json 51 | { 52 | "content": "", 53 | "kind": 5250, 54 | "tags": [ 55 | [ "i", "Mic Check, one, two.", "text" ], 56 | [ "param", "language", "en"], 57 | ] 58 | } 59 | ``` 60 | -------------------------------------------------------------------------------- /kinds/5000.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Text extraction 4 | description: Job request to extract text from some kind of input. 5 | --- 6 | 7 | # Input 8 | 9 | Jobs MIGHT specify a mime type as the marker in the i tag. 10 | 11 | # Params 12 | 13 | ## `range` 14 | 15 | Specifies a range on which to focus the transcription in seconds (for audio inputs) 16 | 17 | ``` 18 | [ "param", "range", "", "" ] 19 | ``` 20 | 21 | ## `alignment` 22 | 23 | Specifies alignment of labels (for audio inputs). 24 | For example, if the output format supports timestamps, these will occur according to the alignment. If parameter is not set, the DVM decides the default alignment. 25 | possible inputs `raw`, `segment`, `word` 26 | 27 | ``` 28 | [ "param", "alignment", "raw" ] 29 | ``` 30 | 31 | # Output 32 | 33 | Including but not limited to: 34 | 35 | * `text/vtt` 36 | * `text/plain` 37 | * `text/markdown` 38 | 39 | # Example 40 | 41 | ```json 42 | { 43 | "content": "", 44 | "kind": 5000, 45 | "tags": [ 46 | [ "i", "https://chtbl.com/track/E2818G/http://feeds.soundcloud.com/stream/1602940803-bitcoin-and-data-vendetta-ep782.mp3", "url" ], 47 | [ "output", "text/plain" ], 48 | [ "param", "range", "300", "360" ] 49 | [ "param", "alignment", "raw"] 50 | ] 51 | } 52 | ``` -------------------------------------------------------------------------------- /kinds/5200.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Video Conversion 4 | description: Job request to convert a Video to another Format. 5 | --- 6 | 7 | # Input 8 | 9 | Clients provide a link to the input video. The link can either point directly to a media file (e.g. ending with .mp4) or to a social media share link, e.g. a Tweet or a Tiktok video. 10 | 11 | # Params 12 | 13 | ## `range` 14 | 15 | Specifies a range if the video should be shortend. 16 | 17 | ``` 18 | [ "param", "range", "", "" ] 19 | ``` 20 | 21 | 22 | # Output 23 | Description: 24 | The output format 25 | 26 | Usage: 27 | Optional. If set the DVM uses the format to convert the video to the given format, otherwise it's up to the DVM to choose an output format. By using a format such as audio/mp3, the video might also be converted to an audio file. 28 | Including but not limited to: 29 | 30 | * `video/mp4` 31 | * `video/avi` 32 | * `audio/mp3` 33 | * `audio/wav` 34 | * `audio/ogg` 35 | 36 | 37 | # Example 38 | 39 | ## Generates the output based on a social media link and params 40 | 41 | ```json 42 | { 43 | "content": "", 44 | "kind": 5200, 45 | "tags": [ 46 | [ "i", "https://x.com/WalkerAmerica/status/1713928663865966627?s=20", "url" ], 47 | [ "output", "video/mp4" ], 48 | [ "param", "range", "0", "10"], 49 | 50 | ] 51 | } 52 | ``` 53 | -------------------------------------------------------------------------------- /kinds/5302.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Nostr Content Search 4 | description: Job to search for notes based on a prompt 5 | --- 6 | 7 | # Input 8 | Text to be included in the search 9 | 10 | # Output 11 | 12 | A `content` JSON-stringified list of tags. Tags SHOULD be `a` or `e`. 13 | 14 | # Params 15 | 16 | * `users`: A list of pubkeys of a users to filter notes from (Optional parameter) 17 | * `since`: unix timestamp in seconds to start the search (Optional parameter) 18 | * `until`: unix timestamp in seconds to end the search (Optional parameter) 19 | * `max_results`: Maximum number of events to return (Optional parameter) 20 | 21 | # How clients can use this 22 | 23 | Clients can ask a Search DVM to return notes based on certain filters. 24 | 25 | 26 | # Example 27 | 28 | #### Request 29 | ```json 30 | { 31 | "content": "", 32 | 33 | "kind": 5302, 34 | "tags": 35 | [ 36 | [ "i", "shipyard", "text" ], 37 | ["param","max_results","100"], 38 | ["param","users","[[\"p\", \"6e468422dfb74a5738702a8823b9b28168abab8655faacb6853cd0ee15deee93\"]]"] 39 | ] 40 | } 41 | ``` 42 | 43 | #### Response 44 | ```json 45 | { 46 | "kind": 6302, 47 | "content": [ 48 | [ "e", "<...>" ], 49 | [ "e", "<...>" ], 50 | [ "e", "<...>" ], 51 | [ "e", "<...>" ] 52 | ] 53 | } 54 | ``` 55 | -------------------------------------------------------------------------------- /doks-theme/_sass/components/_hero-subheader.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Hero subheader (components/_hero-subheader.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | .hero-subheader { 7 | color: $color-dark-blue; 8 | background-color: $color-theme-blue; 9 | padding: 3.75rem 0 (4.6875rem - 1.25rem) 0; 10 | 11 | @media (min-width: $screen-sm-min) { 12 | padding: 9.375rem 0 (10.3125rem - 1.25rem) 0; 13 | } 14 | 15 | .btn { 16 | margin-right: .9375rem; 17 | } 18 | 19 | .btn--github, 20 | .btn--w-arrow-down { 21 | @extend .btn--dark; 22 | } 23 | 24 | .site-header + & { 25 | padding: 9.375rem 0 (4.6875rem - 1.25rem) 0; 26 | 27 | @media (min-width: $screen-sm-min) { 28 | padding: 15rem 0 (10.3125rem - 1.25rem) 0; 29 | } 30 | } 31 | } 32 | 33 | .hero-subheader--before-out { 34 | @media (min-width: $screen-sm-min) { 35 | padding: 9.375rem 0 (15.3125rem - 1.25rem) 0; 36 | } 37 | } 38 | 39 | /* ----- Title ----- */ 40 | .hero-subheader__title { 41 | margin-top: 0; 42 | } 43 | 44 | /* ----- Title ----- */ 45 | .hero-subheader__desc { 46 | margin-bottom: 1.875rem; 47 | } 48 | 49 | /* ----- Author ----- */ 50 | .hero-subheader__author { 51 | border-left: 2px solid; 52 | padding-left: 2.5rem; 53 | 54 | .btn { 55 | margin-bottom: 0; 56 | } 57 | } 58 | 59 | .hero-subheader__author-title { 60 | font-size: $font-size-h5; 61 | } 62 | 63 | /* ----- More ----- */ 64 | .hero-subheader__btn-more { 65 | color: inherit; 66 | } 67 | -------------------------------------------------------------------------------- /doks-theme/_sass/objects/_buttons.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Buttons (objects/_buttons.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | .btn { 7 | @include link-reset; 8 | font-family: $font-family-secondary; 9 | font-weight: 500; 10 | display: inline-block; 11 | margin: 0 0 1.25rem 0; 12 | } 13 | 14 | /* ----- Variations ----- */ 15 | .btn--full-width { 16 | display: block; 17 | width: 100%; 18 | } 19 | 20 | .btn--rounded { 21 | border-radius: 3.125rem; 22 | } 23 | 24 | .btn--dark { 25 | color: $color-white; 26 | background-color: $color-dark-blue; 27 | padding: .5625rem 1.5625rem; 28 | transition: color .2s, background-color .2s; 29 | 30 | @media (min-width: $screen-sm-min) { 31 | padding: .8125rem 2.1875rem; 32 | } 33 | 34 | &:hover, 35 | &:focus, 36 | &:active { 37 | color: $color-dark-blue; 38 | background-color: $color-yellow; 39 | } 40 | } 41 | 42 | .btn--w-icon { 43 | .icon { 44 | float: right; 45 | font-size: 1.375rem; 46 | margin-left: .75rem; 47 | position: relative; 48 | bottom: -.125rem; 49 | } 50 | } 51 | 52 | .btn--w-icon-left { 53 | .icon { 54 | float: left; 55 | margin-left: 0; 56 | margin-right: .75rem; 57 | } 58 | } 59 | 60 | .btn--read-more { 61 | text-transform: uppercase; 62 | 63 | .icon { 64 | display: inline-block; 65 | margin-left: .625rem; 66 | transition: transform .2s; 67 | } 68 | 69 | &:hover, 70 | &:focus, 71 | &:active { 72 | .icon { 73 | @include translate(.3125rem, 0); 74 | } 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /doks-theme/_sass/components/_sections-list.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Sections list (components/_sections-list.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | .sections-list { 7 | float: left; 8 | margin-top: 1.25rem; 9 | } 10 | 11 | /* ----- Wrapper ----- */ 12 | .sections-list-wrapper { 13 | width: 100%; 14 | } 15 | 16 | /* ----- Affix ----- */ 17 | .sections-list.affix { 18 | position: fixed; 19 | top: 0; 20 | } 21 | 22 | .sections-list.affix-bottom { 23 | position: absolute; 24 | } 25 | 26 | /* ----- List ----- */ 27 | .sections-list { 28 | ul { 29 | ul { 30 | margin-top: .625rem; 31 | margin-bottom: 0; 32 | } 33 | 34 | li { 35 | margin-bottom: .625rem; 36 | border-left: 3px solid #eee; 37 | transition: border .2s; 38 | 39 | &.active { 40 | border-left-color: $color-dark-blue; 41 | } 42 | 43 | &.has-submenu { 44 | padding-right: 1.25rem; 45 | 46 | &::after { 47 | @extend .icon; 48 | content: '\e91d'; 49 | color: #bdbdbd; 50 | display: inline-block; 51 | font-size: 1.25rem; 52 | position: absolute; 53 | right: 0; 54 | top: .3125rem; 55 | transition: color .2s; 56 | } 57 | 58 | > ul { 59 | display: none; 60 | } 61 | 62 | &.active { 63 | &::after { 64 | color: $color-dark-blue; 65 | } 66 | 67 | > ul { 68 | display: block; 69 | } 70 | } 71 | } 72 | 73 | &::before { 74 | display: none; 75 | } 76 | 77 | a { 78 | @include link-reset; 79 | } 80 | } 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /doks-theme/_sass/components/_page-nav.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Page nav (components/_page-nav.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | .page-nav { 7 | color: $color-dark-blue; 8 | background-color: $color-theme-blue; 9 | padding: 1.25rem 0; 10 | 11 | @media (min-width: $screen-sm-min) { 12 | padding: 2.1875rem 0 2.5rem 0; 13 | } 14 | } 15 | 16 | /* ----- Item ----- */ 17 | .page-nav__item { 18 | @include link-reset; 19 | display: block; 20 | text-align: center; 21 | font-weight: 500; 22 | font-family: $font-family-secondary; 23 | 24 | @media (min-width: $screen-sm-min) { 25 | font-size: $font-size-h3; 26 | } 27 | 28 | & + & { 29 | border-top: 1px solid rgba($color-dark, .15); 30 | padding-top: 1.25rem; 31 | margin-top: 1.25rem; 32 | 33 | @media (min-width: $screen-sm-min) { 34 | border-top: 0; 35 | padding-top: 0; 36 | margin-top: 0; 37 | } 38 | } 39 | 40 | .icon { 41 | display: inline-block; 42 | position: relative; 43 | bottom: -.0625rem; 44 | transition: transform .2s; 45 | } 46 | } 47 | 48 | .page-nav__item--prev { 49 | @media (min-width: $screen-sm-min) { 50 | float: left; 51 | } 52 | 53 | &:hover, 54 | &:focus, 55 | &:active { 56 | .icon { 57 | @include translate(-.625rem, 0); 58 | } 59 | } 60 | 61 | .icon { 62 | margin-right: .625rem; 63 | } 64 | } 65 | 66 | .page-nav__item--next { 67 | @media (min-width: $screen-sm-min) { 68 | float: right; 69 | } 70 | 71 | &:hover, 72 | &:focus, 73 | &:active { 74 | .icon { 75 | @include translate(.625rem, 0); 76 | } 77 | } 78 | 79 | .icon { 80 | margin-left: .625rem; 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /doks-theme/_sass/components/_callout.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Callout (components/_callout.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | .callout { 7 | border: 2px solid darken($color-callout, 4%); 8 | background-color: $color-callout; 9 | padding: .9375rem 1.25rem .625rem 1.25rem; 10 | margin: 0 0 1.25rem 0; 11 | 12 | @media (min-width: $screen-sm-min) { 13 | padding: 1.25rem 1.875rem .9375rem 1.875rem; 14 | } 15 | 16 | p { 17 | font-size: .9375em; 18 | line-height: 1.8em; 19 | margin-bottom: .625rem; 20 | } 21 | 22 | strong { 23 | display: block; 24 | color: $color-dark; 25 | font-family: $font-family-secondary; 26 | font-size: 1.133em; 27 | font-weight: 500; 28 | margin-bottom: .625rem; 29 | } 30 | } 31 | 32 | /* ----- Variations ----- */ 33 | .callout { 34 | &--success { 35 | background-color: $color-callout-success; 36 | border-color: darken($color-callout-success, 6%); 37 | 38 | strong { 39 | color: darken($color-callout-success, 82%); 40 | } 41 | } 42 | 43 | &--info { 44 | background-color: $color-callout-info; 45 | border-color: darken($color-callout-info, 4%); 46 | 47 | strong { 48 | color: darken($color-callout-info, 82%); 49 | } 50 | } 51 | 52 | &--warning { 53 | background-color: $color-callout-warning; 54 | border-color: darken($color-callout-warning, 10%); 55 | 56 | strong { 57 | color: darken($color-callout-warning, 70%); 58 | } 59 | } 60 | 61 | &--danger { 62 | background-color: $color-callout-danger; 63 | border-color: darken($color-callout-danger, 4%); 64 | 65 | strong { 66 | color: darken($color-callout-danger, 70%); 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /doks-theme/assets/css/style.scss: -------------------------------------------------------------------------------- 1 | --- 2 | # This ensures Jekyll reads the file to be transformed into CSS later 3 | # only Main files contain this front matter, not partials. 4 | --- 5 | 6 | /** 7 | * Style (style.scss) 8 | */ 9 | 10 | /* ----- Charset ----- */ 11 | @charset 'utf-8'; 12 | 13 | /* ----- Variables ----- */ 14 | @import 'variables'; 15 | 16 | /* ----- Tools ----- */ 17 | @import 'tools/prefixer'; 18 | @import 'tools/clearfix'; 19 | @import 'tools/grid-framework'; 20 | @import 'tools/grid'; 21 | @import 'tools/hyperlinks'; 22 | @import 'tools/lists'; 23 | @import 'tools/responsive-visibility'; 24 | 25 | /* ----- Base ----- */ 26 | @import 'generic/normalize'; 27 | @import 'generic/base'; 28 | @import 'generic/code'; 29 | 30 | /* ----- Utilities ----- */ 31 | @import 'utilities/alignment'; 32 | @import 'utilities/visibility'; 33 | 34 | /* ----- Objects ----- */ 35 | @import 'objects/buttons'; 36 | @import 'objects/content'; 37 | @import 'objects/error-404'; 38 | @import 'objects/grid'; 39 | @import 'objects/icons'; 40 | @import 'objects/section'; 41 | 42 | /* ----- Components ----- */ 43 | @import 'components/callout'; 44 | @import 'components/example'; 45 | @import 'components/hero-subheader'; 46 | @import 'components/micro-nav'; 47 | @import 'components/nav-grid'; 48 | @import 'components/page-nav'; 49 | @import 'components/sections-list'; 50 | @import 'components/site-footer'; 51 | @import 'components/site-header'; 52 | @import 'components/social-list'; 53 | @import 'components/title-anchor-link'; 54 | 55 | /* ----- Themes ----- */ 56 | @import 'themes/green'; 57 | @import 'themes/red'; 58 | @import 'themes/yellow'; 59 | @import 'themes/purple'; 60 | -------------------------------------------------------------------------------- /doks-theme/assets/js/scripts.min.js: -------------------------------------------------------------------------------- 1 | !function(e){"use strict";e.fn.reduce=function(e,t){var n=this,r=t;return n.each(function(t,l){r=e.call(l,r,l,t,n)}),r},e(":header[id]").each(function(){var t=e(this);t.html('# '+t.html())});var t=function(e){var t=e.prop("tagName").toLowerCase();return t&&-1!==["h1","h2","h3","h4","h5","h6"].indexOf(t)?parseInt(t.replace("h",""),10):!1},n=e(":header[id]").reduce(function(n,r){var l={childrens:[]};return l.$el=e(r),l.level=t(l.$el),l.$el.length&&l.level!==!1?(n.push(l),n):n},[]),r=function(e,t){if(!t.$el.length||t.level===!1)return e;if(e.length<1)return[t];var n=e[e.length-1].level;return t.level>n?e[e.length-1].childrens.push(t):e.push(t),e},l=function(e){e=e.reduce(r,[]);var t;for(t=0;t");r.addClass("level-"+t[0].level),!0===n&&r.addClass("nav");var l,i;for(l=0;l"),i.append(''+t[l].$el.text().replace(/^#\ /,"")+""),t[l].childrens&&t[l].childrens.length&&(i.append(a(t[l].childrens)),i.addClass("has-submenu")),r.append(i);return r};n.length&&(n=l(n),a(n,!0).appendTo(".js-sections"));var i=e(".js-smooth-scroll");i.click(function(){return e("html, body").animate({scrollTop:e(e(this).attr("href")).offset().top},1200),!1});var o=function(){e(".sections-list").css("width",e(".sections-list-wrapper").width())};o(),e(window).on("resize",o),e(window).on("load",function(){e(".js-affix").affix({offset:{top:function(){return this.top=e(".hero-subheader").outerHeight(!0)+100},bottom:function(){return this.bottom=e(".js-footer-area").outerHeight(!0)+80}}})}),e(".offcanvas-toggle").on("click",function(){e("body").toggleClass("offcanvas-expanded")})}(jQuery); 2 | -------------------------------------------------------------------------------- /_site/doks-theme/assets/js/scripts.min.js: -------------------------------------------------------------------------------- 1 | !function(e){"use strict";e.fn.reduce=function(e,t){var n=this,r=t;return n.each(function(t,l){r=e.call(l,r,l,t,n)}),r},e(":header[id]").each(function(){var t=e(this);t.html('# '+t.html())});var t=function(e){var t=e.prop("tagName").toLowerCase();return t&&-1!==["h1","h2","h3","h4","h5","h6"].indexOf(t)?parseInt(t.replace("h",""),10):!1},n=e(":header[id]").reduce(function(n,r){var l={childrens:[]};return l.$el=e(r),l.level=t(l.$el),l.$el.length&&l.level!==!1?(n.push(l),n):n},[]),r=function(e,t){if(!t.$el.length||t.level===!1)return e;if(e.length<1)return[t];var n=e[e.length-1].level;return t.level>n?e[e.length-1].childrens.push(t):e.push(t),e},l=function(e){e=e.reduce(r,[]);var t;for(t=0;t");r.addClass("level-"+t[0].level),!0===n&&r.addClass("nav");var l,i;for(l=0;l"),i.append(''+t[l].$el.text().replace(/^#\ /,"")+""),t[l].childrens&&t[l].childrens.length&&(i.append(a(t[l].childrens)),i.addClass("has-submenu")),r.append(i);return r};n.length&&(n=l(n),a(n,!0).appendTo(".js-sections"));var i=e(".js-smooth-scroll");i.click(function(){return e("html, body").animate({scrollTop:e(e(this).attr("href")).offset().top},1200),!1});var o=function(){e(".sections-list").css("width",e(".sections-list-wrapper").width())};o(),e(window).on("resize",o),e(window).on("load",function(){e(".js-affix").affix({offset:{top:function(){return this.top=e(".hero-subheader").outerHeight(!0)+100},bottom:function(){return this.bottom=e(".js-footer-area").outerHeight(!0)+80}}})}),e(".offcanvas-toggle").on("click",function(){e("body").toggleClass("offcanvas-expanded")})}(jQuery); 2 | -------------------------------------------------------------------------------- /documentation/doks-theme/assets/js/scripts.min.js: -------------------------------------------------------------------------------- 1 | !function(e){"use strict";e.fn.reduce=function(e,t){var n=this,r=t;return n.each(function(t,l){r=e.call(l,r,l,t,n)}),r},e(":header[id]").each(function(){var t=e(this);t.html('# '+t.html())});var t=function(e){var t=e.prop("tagName").toLowerCase();return t&&-1!==["h1","h2","h3","h4","h5","h6"].indexOf(t)?parseInt(t.replace("h",""),10):!1},n=e(":header[id]").reduce(function(n,r){var l={childrens:[]};return l.$el=e(r),l.level=t(l.$el),l.$el.length&&l.level!==!1?(n.push(l),n):n},[]),r=function(e,t){if(!t.$el.length||t.level===!1)return e;if(e.length<1)return[t];var n=e[e.length-1].level;return t.level>n?e[e.length-1].childrens.push(t):e.push(t),e},l=function(e){e=e.reduce(r,[]);var t;for(t=0;t");r.addClass("level-"+t[0].level),!0===n&&r.addClass("nav");var l,i;for(l=0;l"),i.append(''+t[l].$el.text().replace(/^#\ /,"")+""),t[l].childrens&&t[l].childrens.length&&(i.append(a(t[l].childrens)),i.addClass("has-submenu")),r.append(i);return r};n.length&&(n=l(n),a(n,!0).appendTo(".js-sections"));var i=e(".js-smooth-scroll");i.click(function(){return e("html, body").animate({scrollTop:e(e(this).attr("href")).offset().top},1200),!1});var o=function(){e(".sections-list").css("width",e(".sections-list-wrapper").width())};o(),e(window).on("resize",o),e(window).on("load",function(){e(".js-affix").affix({offset:{top:function(){return this.top=e(".hero-subheader").outerHeight(!0)+100},bottom:function(){return this.bottom=e(".js-footer-area").outerHeight(!0)+80}}})}),e(".offcanvas-toggle").on("click",function(){e("body").toggleClass("offcanvas-expanded")})}(jQuery); 2 | -------------------------------------------------------------------------------- /_site/documentation/doks-theme/assets/js/scripts.min.js: -------------------------------------------------------------------------------- 1 | !function(e){"use strict";e.fn.reduce=function(e,t){var n=this,r=t;return n.each(function(t,l){r=e.call(l,r,l,t,n)}),r},e(":header[id]").each(function(){var t=e(this);t.html('# '+t.html())});var t=function(e){var t=e.prop("tagName").toLowerCase();return t&&-1!==["h1","h2","h3","h4","h5","h6"].indexOf(t)?parseInt(t.replace("h",""),10):!1},n=e(":header[id]").reduce(function(n,r){var l={childrens:[]};return l.$el=e(r),l.level=t(l.$el),l.$el.length&&l.level!==!1?(n.push(l),n):n},[]),r=function(e,t){if(!t.$el.length||t.level===!1)return e;if(e.length<1)return[t];var n=e[e.length-1].level;return t.level>n?e[e.length-1].childrens.push(t):e.push(t),e},l=function(e){e=e.reduce(r,[]);var t;for(t=0;t");r.addClass("level-"+t[0].level),!0===n&&r.addClass("nav");var l,i;for(l=0;l"),i.append(''+t[l].$el.text().replace(/^#\ /,"")+""),t[l].childrens&&t[l].childrens.length&&(i.append(a(t[l].childrens)),i.addClass("has-submenu")),r.append(i);return r};n.length&&(n=l(n),a(n,!0).appendTo(".js-sections"));var i=e(".js-smooth-scroll");i.click(function(){return e("html, body").animate({scrollTop:e(e(this).attr("href")).offset().top},1200),!1});var o=function(){e(".sections-list").css("width",e(".sections-list-wrapper").width())};o(),e(window).on("resize",o),e(window).on("load",function(){e(".js-affix").affix({offset:{top:function(){return this.top=e(".hero-subheader").outerHeight(!0)+100},bottom:function(){return this.bottom=e(".js-footer-area").outerHeight(!0)+80}}})}),e(".offcanvas-toggle").on("click",function(){e("body").toggleClass("offcanvas-expanded")})}(jQuery); 2 | -------------------------------------------------------------------------------- /kinds/5905.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Nostr Event Publish Schedule 4 | description: Schedule nostr events for future publishing 5 | --- 6 | 7 | Schedule events to be published in the future. (Job requests can be encrypted per NIP-90.) 8 | Events to be published can have a different pubkey than the requester's pubkey (i.e. an event can be scheduled to be published by a different user than the user who scheduling it). 9 | 10 | # Input 11 | 12 | Event(s) to be scheduled 13 | 14 | ```js 15 | [ "i", "\" ] 34 | "), 35 | "kind": 7000, 36 | "tags": [ 37 | [ "e", "<5905-event-job-request>" ], 38 | [ "p", "" ], 39 | [ "encrypted" ] 40 | ] 41 | } 42 | ``` 43 | 44 | # Example 45 | 46 | ## Request 47 | 48 | ```js 49 | { 50 | "content": nip04_encrypt(" 51 | [ \"i\", \"\", \"text\" ], 52 | [ \"param\", \"relays\", \"wss://nos.lol\", \"wss://relay.damus.social\" ] 53 | "), 54 | "kind": 5905, 55 | "pubkey": "", 56 | "tags": [ 57 | [ "p", "" ], 58 | [ "encrypted" ] 59 | ] 60 | } 61 | ``` 62 | 63 | ### Feedback 64 | 65 | A feedback 66 | 67 | ## Desponse 68 | 69 | ```json 70 | { 71 | "content": "", 72 | "kind": 6900, 73 | "tags": [ 74 | [ "p", "" ], 75 | [ "e", "" ] 76 | ] 77 | } 78 | ``` 79 | -------------------------------------------------------------------------------- /kinds/5500.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Malware Scanning 4 | description: Job request to perform a Malware Scan on files. 5 | --- 6 | 7 | # Input 8 | 9 | Clients must provide a URL in the "i" tag field. The desired file(s) to be scanned must be directly accessible at the provided URL. 10 | 11 | # Output 12 | 13 | If no malware was found, `content` is set to the string `CLEAN`. If malware was found, `content` contains plaintext with details of findings. 14 | 15 | # Example 1 16 | 17 | ## Analysis of a file that contains malware. 18 | 19 | #### Request 20 | 21 | ```json 22 | { 23 | "content": "", 24 | "kind": 5500, 25 | "tags": [["i", "https://secure.eicar.org/eicar.com.txt", "url"]] 26 | } 27 | ``` 28 | 29 | #### Response 30 | 31 | ```json 32 | { 33 | ... 34 | "content": "Scanning eicar.com.txt 35 | eicar.com.txt: Win.Test.EICAR_HDB-1 FOUND 36 | eicar.com.txt: Win.Test.EICAR_HSB-1 FOUND 37 | eicar.com.txt: Eicar-Signature FOUND 38 | eicar.com.txt!(0): Eicar-Signature FOUND 39 | 40 | ----------- SCAN SUMMARY ----------- 41 | Known viruses: 8682629 42 | Engine version: 1.2.1 43 | Scanned directories: 0 44 | Scanned files: 1 45 | Infected files: 1 46 | Data scanned: 0.00 MB 47 | Data read: 0.00 MB (ratio 0.00:1) 48 | Time: 12.757 sec (0 m 12 s) 49 | Start Date: 2024:01:15 17:01:38 50 | End Date: 2024:01:15 17:01:51", 51 | "kind": 6500 52 | ... 53 | } 54 | ``` 55 | 56 | # Example 2 57 | 58 | ## Analysis of a clean file. 59 | 60 | #### Request 61 | 62 | ```json 63 | { 64 | "content": "", 65 | "kind": 5500, 66 | "tags": [ 67 | [ 68 | "i", 69 | "https://raw.githubusercontent.com/ca110us/go-clamav/main/example/test_file/nmap", 70 | "url" 71 | ] 72 | ] 73 | } 74 | ``` 75 | 76 | #### Response 77 | 78 | ```json 79 | { 80 | ... 81 | "content": "CLEAN", 82 | "kind": 6500 83 | ... 84 | } 85 | ``` 86 | -------------------------------------------------------------------------------- /doks-theme/_includes/site-header.html: -------------------------------------------------------------------------------- 1 | {% if site.doks.header.nav %} 2 |
3 | 8 |
9 | {% endif %} 10 | 11 | {% if site.doks.header.logo.text or site.doks.header.logo.image or site.doks.header.nav %} 12 | 39 | {% endif %} 40 | -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | # Page settings 3 | layout: homepage 4 | keywords: nostr 5 | 6 | # Hero section 7 | title: Data Vending Machines 8 | description: This website provides specs of the different NIP-90 Data Vending Machine kinds 9 | # buttons: 10 | # - content: Button 11 | # url: '#' 12 | # external_url: false 13 | # - icon: github 14 | # content: Button with icon 15 | # url: '#' 16 | # external_url: true 17 | 18 | 19 | # Grid navigation 20 | grid_navigation: 21 | - title: Introductions 22 | excerpt: Read about DVMs 23 | cta: Read more 24 | url: intro 25 | - title: NIP-89's role 26 | excerpt: The important role of NIP-89 in DVMs 27 | url: /nip89 28 | cta: Read more 29 | - title: NIP-90 30 | excerpt: The NIP that describes Data Vending Machines 31 | url: https://github.com/nostr-protocol/nips/blob/vending-machine/90.md 32 | cta: Read more 33 | - title: Text Manipulation 34 | excerpt: "Jobs where the input or output is text" 35 | cta: View 36 | url: 'ranges/50xx' 37 | - title: Image Manipulation 38 | excerpt: "Jobs where the input or output is an image" 39 | cta: View 40 | url: 'ranges/51xx' 41 | - title: Video/Audio Manipulation 42 | excerpt: "Jobs where the input or output is video" 43 | cta: View 44 | url: 'ranges/52xx' 45 | - title: Discovery 46 | excerpt: "Jobs where the goal is to discover something" 47 | cta: View 48 | url: 'ranges/53xx' 49 | - title: Nostr Analytics 50 | excerpt: "Jobs where the goal is to analyze nostr events" 51 | cta: View 52 | url: 'ranges/54xx' 53 | - title: Software Analysis 54 | excerpt: "Jobs where the goal is to analyze Files/Code" 55 | cta: View 56 | url: 'ranges/55xx' 57 | - title: Others 58 | excerpt: "Jobs that don't fit neatly in other categories" 59 | cta: View 60 | url: 'ranges/59xx' 61 | --- 62 | --- 63 | -------------------------------------------------------------------------------- /kinds/5301.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Nostr People Discovery 4 | description: Job request to discover nostr pubkeys 5 | --- 6 | 7 | # Input 8 | 9 | Clients MIGHT provide an input to be used by the DVM. The DVM decides how to interpret this input. 10 | 11 | DVMs would implement different algorithms, with different value props. Clients might choose to allow users to choose which algorithm resonates with them to discover which DVM suits their needs. 12 | 13 | # Output 14 | 15 | A `content` JSON-stringified list of tags. Tags SHOULD be `a` or `e`. 16 | 17 | # Params 18 | 19 | * `p`: pubkey of the user to generate recommendations for (optional, defaults to the user sending the job request) 20 | 21 | # How clients can use this 22 | 23 | Clients don't need to know what algorithm each DVM provides; the kind number `5300` simply means that the DVMs serving this kind will provide nostr-native content a user might be interested in. 24 | 25 | How "interested" is defined by each DVM is arbitrary and not the concern of a client, it's the concern of a user and the interaction with the DVM they choose. Clients are acting as a vehicle to connect users with DVMs with the goal of discovering nostr-native content. 26 | 27 | Clients should allow users to choose which DVM they want to use, send the request and the only thing the client needs to know is how to render the results, which should be familiar to any nostr client. 28 | 29 | ## Examples 30 | 31 | * [Suggest Wizard](https://vendata.io/dvms/npub1dvmspgv8s5fhnenuf6mazcltkd5kchn2p8n35nw24z2w6ghvqpequ3p2gl): helps find people to follow based on the user's current follows 32 | 33 | # Example 34 | 35 | #### Request 36 | ```json 37 | { 38 | "content": "", 39 | "kind": 5301, 40 | "tags": [] 41 | } 42 | ``` 43 | 44 | #### Response 45 | ```json 46 | { 47 | "kind": 6301, 48 | "content": ' 49 | [ "p", "<...>" ], 50 | [ "p", "<...>" ], 51 | [ "p", "<...>" ], 52 | [ "p", "<...>" ] 53 | ' 54 | } 55 | ``` -------------------------------------------------------------------------------- /doks-theme/_sass/components/_nav-grid.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Nav grid (components/_nav-grid.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | .nav-grid { 7 | font-size: .9375em; 8 | line-height: 1.8em; 9 | color: $color-dark-blue; 10 | } 11 | 12 | .nav-grid--out { 13 | @media (min-width: $screen-sm-min) { 14 | margin-top: -11.25rem; 15 | } 16 | } 17 | 18 | /* ----- Item ----- */ 19 | .nav-grid__item { 20 | @include link-reset; 21 | display: block; 22 | background-color: $color-theme-blue; 23 | border: 2px solid rgba($color-dark-blue, .2); 24 | margin-bottom: .9375rem; 25 | transition: background-color .2s, border .2s; 26 | 27 | @media (min-width: $screen-sm-min) { 28 | margin-bottom: 1.875rem; 29 | } 30 | 31 | &:hover, 32 | &:active, 33 | &:focus { 34 | border-color: $color-dark-blue; 35 | 36 | .nav-grid__btn { 37 | border-color: $color-dark-blue; 38 | 39 | .icon { 40 | @include translate(.625rem, 0); 41 | } 42 | } 43 | } 44 | } 45 | 46 | /* ----- Content ----- */ 47 | .nav-grid__content { 48 | @include clearfix(); 49 | padding: 1.25rem 1.875rem .625rem 1.875rem; 50 | 51 | @media (min-width: $screen-md-min) { 52 | padding: 1.875rem 2.5rem 1.25rem 2.5rem; 53 | } 54 | 55 | p { 56 | margin-bottom: .625rem; 57 | } 58 | } 59 | 60 | /* ----- Title ----- */ 61 | .nav-grid__title { 62 | display: block; 63 | font-size: $font-size-h3; 64 | font-weight: 500; 65 | padding: 0; 66 | margin-top: 0; 67 | border: 0; 68 | } 69 | 70 | /* ----- Read more ----- */ 71 | .nav-grid__btn { 72 | font-family: $font-family-secondary; 73 | font-weight: 500; 74 | text-transform: uppercase; 75 | border-top: 2px solid rgba($color-dark-blue, .2); 76 | padding: 1.25rem 1.875rem 0 1.875rem; 77 | transition: border .2s; 78 | 79 | @media (min-width: $screen-md-min) { 80 | padding: 1.25rem 2.5rem 0 2.5rem; 81 | } 82 | 83 | .icon { 84 | display: inline-block; 85 | font-size: 1.25em; 86 | margin-left: .5rem; 87 | position: relative; 88 | bottom: -.125rem; 89 | transition: transform .2s; 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /kinds/5400.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Nostr Event Count 4 | description: Job request to count matching events 5 | --- 6 | 7 | # Input 8 | 9 | The input MUST be a JSON-encoded list of filters as specified in NIP 01. 10 | 11 | # Output 12 | 13 | `content` MUST contain a stringified number representing the final count. DVMs MAY return partial results using kind 7000 in the same format. 14 | 15 | # Params 16 | 17 | * `relay`: a relay url to include in the count (required, client MAY provide more than one relay) 18 | * `group`: an event field or tag name to group results by, resulting in a potentially nested dictionary of results (optional, client MAY provide more than one group). Supported groups include: 19 | * `content` - an event's `content` field 20 | * `pubkey` - an event's `pubkey` field 21 | * `reply` - an event's `reply` e-tag 22 | * `root` - an event's `root` e-tag 23 | * Any other value will be assumed to be a tag name. The first matching tag's value will be used. 24 | 25 | # How clients can use this 26 | 27 | Clients may want to avoid downloading large datasets from many relays simply in order to de-duplicate and count them. This can be useful for a number of things: 28 | 29 | - Counting pubkey followers and other social graph analysis like web of trust score calculation 30 | - Retrieving counts for list pages (number of messages in a conversation, number of lists on a profile) 31 | - Getting metadata for tags (this topic has been used x times) 32 | 33 | # Example 34 | 35 | #### Request 36 | ```json 37 | { 38 | "content": "[{\"#t\":[\"zapathon\"]}]", 39 | "kind": 5400, 40 | "tags": [] 41 | } 42 | ``` 43 | 44 | #### Response 45 | ```json 46 | { 47 | "kind": 6400, 48 | "content": "129469" 49 | } 50 | ``` 51 | 52 | #### Request 53 | ```json 54 | { 55 | "content": "[{\"#kinds\":[7], \"#e\":[\"7b0d90f1973da1cea186c85fbd09b3e4e455ce4d438b60a3d1f9aabc1681418f\"}]", 56 | "kind": 5400, 57 | "tags": [ 58 | ["param", "group", "content"] 59 | ] 60 | } 61 | ``` 62 | 63 | #### Response 64 | ```json 65 | { 66 | "kind": 6400, 67 | "content": "{\"🤙\":224,\"+\":31,\"🧡\":2,\"❤️\":7,\"🤣\":3,\"⚡\":2,\"💜\":7,\":thinking face:\":1,\"🦶\":1,\"🍺\":1,\"🍆\":2,\"🤙🏼\":3,\"🔥\":2,\"🏇\":1,\"💚\":1}" 68 | } 69 | ``` 70 | -------------------------------------------------------------------------------- /nip89.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: NIP-89 4 | description: The role of NIP-89 on using Data Vending Machines 5 | --- 6 | 7 | NIP-89 defines *application recommendation* and *application handler* events. 8 | 9 | Data Vending Machines make extend use of these capabilities; DVMs should announce their capabilities by creating an application handler event with a `k` of the handled job request kind. 10 | 11 | A `kind:31990` (application handler) event should use it's `content` profile data to explain to an end-user its specific characteristics. 12 | 13 | Clients SHOULD show this information as a way to allow users to choose the specific DVM they want to use. 14 | 15 | This is where the long-tail of DVMs can be explored. 16 | 17 | # Example 18 | 19 | ## DVM supporting `kind:5100` -- in Dali style 20 | 21 | This NIP-89 acts as a sales-pitch for the DVM to explain to a user exactly what they can expect from interacting with this DVM 22 | 23 | ```json 24 | { 25 | "created_at": 1693484377, 26 | "content": "{ 27 | \"name\": \"Dali Vending Machine\", 28 | \"image\": \"https://cdn.nostr.build/i/fb207be87d748ad927f52a063c221d1d97ef6d75e660003cb6e85baf2cd2d64e.jpg\", 29 | \"about\": \"I'm Dali re-incarnated, faster and cheaper\", 30 | \"encryptionSupported\": True, 31 | 32 | }", 33 | "tags": [ 34 | [ "d", "td51xbgxwbt5116r" ], 35 | [ "k", "5100" ] 36 | ], 37 | "kind": 31990, 38 | "pubkey": "6b37d5dc88c1cbd32d75b713f6d4c2f7766276f51c9337af9d32c8d715cc1b93", 39 | } 40 | ``` 41 | 42 | ## DVM supporting `kind:5300` 43 | 44 | This NIP-89 acts as a sales-pitch for the DVM to explain to a user exactly what they can expect from interacting with this DVM 45 | 46 | ```json 47 | { 48 | "created_at": 1693484377, 49 | "content": "{ 50 | \"name\": \"You might have missed\", 51 | \"image\": \"https://cdn.nostr.build/i/fb207be87d748ad927f52a063c221d1d97ef6d75e660003cb6e85baf2cd2d64e.jpg\", 52 | \"about\": \"My goal is to help you keep up – or catch up – with your world, no matter how much time you spend on t̶w̶i̶t̶t̶e̶r̶ nostr.\", 53 | \"encryptionSupported\": False, 54 | }", 55 | "tags": [ 56 | [ "d", "td51xbgxwbt5116r" ], 57 | [ "k", "5300" ] 58 | ], 59 | "kind": 31990, 60 | "pubkey": "6b37d5dc88c1cbd32d75b713f6d4c2f7766276f51c9337af9d32c8d715cc1b93", 61 | } 62 | ``` 63 | -------------------------------------------------------------------------------- /kinds/5300.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Nostr Content Discovery 4 | description: Job request to discover nostr-native content 5 | --- 6 | 7 | # Input 8 | 9 | Clients MIGHT provide an input to be used by the DVM. The DVM decides how to interpret this input. 10 | 11 | DVMs would implement different algorithms, with different value props. Clients might choose to allow users to choose which algorithm resonates with them to discover which DVM suits their needs. 12 | 13 | # Output 14 | 15 | A `content` JSON-stringified list of tags. Tags SHOULD be `a` or `e`. 16 | 17 | # Params 18 | 19 | * `p`: pubkey of the user to generate recommendations for (optional, defaults to the user sending the job request) 20 | 21 | # How clients can use this 22 | 23 | Clients don't need to know what algorithm each DVM provides; the kind number `5300` simply means that the DVMs serving this kind will provide nostr-native content a user might be interested in. 24 | 25 | How "interested" is defined by each DVM is arbitrary and not the concern of a client, it's the concern of a user and the interaction with the DVM they choose. Clients are acting as a vehicle to connect users with DVMs with the goal of discovering nostr-native content. 26 | 27 | Clients should allow users to choose which DVM they want to use, send the request and the only thing the client needs to know is how to render the results, which should be familiar to any nostr client. 28 | 29 | ## Examples 30 | 31 | * [DVM Fomostr](https://vendata.io/dvms/npub1dvmathygc89axtt4kufld4xz7amxyah4rjfn0tuaxtydw9wvrwfsp2mq7w): helps users discover content they might have missed 32 | * [Highlighter Recommendations](https://nostrapp.link/a/naddr1qqgxvmm8dvuh2argwf6hvefcv4kx7q3qw0rthyjyp2f5gful0gm2500pwyxfrx93a85289xdz0sd6hyef33sxpqqqp70vjkjrtu): Provides recommendations based on content that has been highlighted. 33 | 34 | # Example 35 | 36 | #### Request 37 | ```json 38 | { 39 | "content": "", 40 | "kind": 5300, 41 | "tags": [ 42 | [ "i", "philosophy", "text" ] 43 | ] 44 | } 45 | ``` 46 | 47 | #### Response 48 | ```json 49 | { 50 | "kind": 6300, 51 | "content": ' 52 | [ "e", "<...>", "relay-url" ], 53 | [ "e", "<...>", "relay-url" ], 54 | [ "e", "<...>", "relay-url" ], 55 | [ "e", "<...>", "relay-url" ], 56 | [ "a", "<...>", "relay-url" ] 57 | ' 58 | } 59 | ``` -------------------------------------------------------------------------------- /doks-theme/_sass/tools/_grid-framework.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Grid framework (tools/_grid-framework.scss) 3 | */ 4 | 5 | /* ----- Make grid columns ----- */ 6 | @mixin make-grid-columns($i: 1, $list: ".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}") { 7 | @for $i from (1 + 1) through $grid-columns { 8 | $list: "#{$list}, .col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}"; 9 | } 10 | 11 | #{$list} { 12 | position: relative; 13 | min-height: 1px; 14 | padding-left: ceil(($grid-gutter-width / 2)); 15 | padding-right: floor(($grid-gutter-width / 2)); 16 | } 17 | } 18 | 19 | /* ----- Float grid columns ----- */ 20 | @mixin float-grid-columns($class, $i: 1, $list: ".col-#{$class}-#{$i}") { 21 | @for $i from (1 + 1) through $grid-columns { 22 | $list: "#{$list}, .col-#{$class}-#{$i}"; 23 | } 24 | 25 | #{$list} { 26 | float: left; 27 | } 28 | } 29 | 30 | /* ----- Calc grid column ----- */ 31 | @mixin calc-grid-column($index, $class, $type) { 32 | @if ($type == width) and ($index > 0) { 33 | .col-#{$class}-#{$index} { 34 | width: percentage(($index / $grid-columns)); 35 | } 36 | } 37 | 38 | @if ($type == push) and ($index > 0) { 39 | .col-#{$class}-push-#{$index} { 40 | left: percentage(($index / $grid-columns)); 41 | } 42 | } 43 | 44 | @if ($type == push) and ($index == 0) { 45 | .col-#{$class}-push-0 { 46 | left: auto; 47 | } 48 | } 49 | 50 | @if ($type == pull) and ($index > 0) { 51 | .col-#{$class}-pull-#{$index} { 52 | right: percentage(($index / $grid-columns)); 53 | } 54 | } 55 | 56 | @if ($type == pull) and ($index == 0) { 57 | .col-#{$class}-pull-0 { 58 | right: auto; 59 | } 60 | } 61 | 62 | @if ($type == offset) { 63 | .col-#{$class}-offset-#{$index} { 64 | margin-left: percentage(($index / $grid-columns)); 65 | } 66 | } 67 | } 68 | 69 | /* ----- Loop grid columns ----- */ 70 | @mixin loop-grid-columns($columns, $class, $type) { 71 | @for $i from 0 through $columns { 72 | @include calc-grid-column($i, $class, $type); 73 | } 74 | } 75 | 76 | /* ----- Make grid ----- */ 77 | @mixin make-grid($class) { 78 | @include float-grid-columns($class); 79 | @include loop-grid-columns($grid-columns, $class, width); 80 | @include loop-grid-columns($grid-columns, $class, pull); 81 | @include loop-grid-columns($grid-columns, $class, push); 82 | @include loop-grid-columns($grid-columns, $class, offset); 83 | } 84 | -------------------------------------------------------------------------------- /doks-theme/assets/js/vendor/bootstrap/affix.min.js: -------------------------------------------------------------------------------- 1 | +function(t){"use strict";function i(i){return this.each(function(){var o=t(this),f=o.data("bs.affix"),n="object"==typeof i&&i;f||o.data("bs.affix",f=new e(this,n)),"string"==typeof i&&f[i]()})}var e=function(i,o){this.options=t.extend({},e.DEFAULTS,o),this.$target=t(this.options.target).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(i),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};e.VERSION="3.3.7",e.RESET="affix affix-top affix-bottom",e.DEFAULTS={offset:0,target:window},e.prototype.getState=function(t,i,e,o){var f=this.$target.scrollTop(),n=this.$element.offset(),s=this.$target.height();if(null!=e&&"top"==this.affixed)return e>f?"top":!1;if("bottom"==this.affixed)return null!=e?f+this.unpin<=n.top?!1:"bottom":t-o>=f+s?!1:"bottom";var a=null==this.affixed,h=a?f:n.top,r=a?s:i;return null!=e&&e>=f?"top":null!=o&&h+r>=t-o?"bottom":!1},e.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(e.RESET).addClass("affix");var t=this.$target.scrollTop(),i=this.$element.offset();return this.pinnedOffset=i.top-t},e.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},e.prototype.checkPosition=function(){if(this.$element.is(":visible")){var i=this.$element.height(),o=this.options.offset,f=o.top,n=o.bottom,s=Math.max(t(document).height(),t(document.body).height());"object"!=typeof o&&(n=f=o),"function"==typeof f&&(f=o.top(this.$element)),"function"==typeof n&&(n=o.bottom(this.$element));var a=this.getState(s,i,f,n);if(this.affixed!=a){null!=this.unpin&&this.$element.css("top","");var h="affix"+(a?"-"+a:""),r=t.Event(h+".bs.affix");if(this.$element.trigger(r),r.isDefaultPrevented())return;this.affixed=a,this.unpin="bottom"==a?this.getPinnedOffset():null,this.$element.removeClass(e.RESET).addClass(h).trigger(h.replace("affix","affixed")+".bs.affix")}"bottom"==a&&this.$element.offset({top:s-i-n})}};var o=t.fn.affix;t.fn.affix=i,t.fn.affix.Constructor=e,t.fn.affix.noConflict=function(){return t.fn.affix=o,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var e=t(this),o=e.data();o.offset=o.offset||{},null!=o.offsetBottom&&(o.offset.bottom=o.offsetBottom),null!=o.offsetTop&&(o.offset.top=o.offsetTop),i.call(e,o)})})}(jQuery); 2 | -------------------------------------------------------------------------------- /_site/doks-theme/assets/js/vendor/bootstrap/affix.min.js: -------------------------------------------------------------------------------- 1 | +function(t){"use strict";function i(i){return this.each(function(){var o=t(this),f=o.data("bs.affix"),n="object"==typeof i&&i;f||o.data("bs.affix",f=new e(this,n)),"string"==typeof i&&f[i]()})}var e=function(i,o){this.options=t.extend({},e.DEFAULTS,o),this.$target=t(this.options.target).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(i),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};e.VERSION="3.3.7",e.RESET="affix affix-top affix-bottom",e.DEFAULTS={offset:0,target:window},e.prototype.getState=function(t,i,e,o){var f=this.$target.scrollTop(),n=this.$element.offset(),s=this.$target.height();if(null!=e&&"top"==this.affixed)return e>f?"top":!1;if("bottom"==this.affixed)return null!=e?f+this.unpin<=n.top?!1:"bottom":t-o>=f+s?!1:"bottom";var a=null==this.affixed,h=a?f:n.top,r=a?s:i;return null!=e&&e>=f?"top":null!=o&&h+r>=t-o?"bottom":!1},e.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(e.RESET).addClass("affix");var t=this.$target.scrollTop(),i=this.$element.offset();return this.pinnedOffset=i.top-t},e.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},e.prototype.checkPosition=function(){if(this.$element.is(":visible")){var i=this.$element.height(),o=this.options.offset,f=o.top,n=o.bottom,s=Math.max(t(document).height(),t(document.body).height());"object"!=typeof o&&(n=f=o),"function"==typeof f&&(f=o.top(this.$element)),"function"==typeof n&&(n=o.bottom(this.$element));var a=this.getState(s,i,f,n);if(this.affixed!=a){null!=this.unpin&&this.$element.css("top","");var h="affix"+(a?"-"+a:""),r=t.Event(h+".bs.affix");if(this.$element.trigger(r),r.isDefaultPrevented())return;this.affixed=a,this.unpin="bottom"==a?this.getPinnedOffset():null,this.$element.removeClass(e.RESET).addClass(h).trigger(h.replace("affix","affixed")+".bs.affix")}"bottom"==a&&this.$element.offset({top:s-i-n})}};var o=t.fn.affix;t.fn.affix=i,t.fn.affix.Constructor=e,t.fn.affix.noConflict=function(){return t.fn.affix=o,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var e=t(this),o=e.data();o.offset=o.offset||{},null!=o.offsetBottom&&(o.offset.bottom=o.offsetBottom),null!=o.offsetTop&&(o.offset.top=o.offsetTop),i.call(e,o)})})}(jQuery); 2 | -------------------------------------------------------------------------------- /doks-theme/assets/js/vendor/bootstrap/scrollspy.min.js: -------------------------------------------------------------------------------- 1 | +function(t){"use strict";function s(e,i){this.$body=t(document.body),this.$scrollElement=t(t(e).is(document.body)?window:e),this.options=t.extend({},s.DEFAULTS,i),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function e(e){return this.each(function(){var i=t(this),o=i.data("bs.scrollspy"),r="object"==typeof e&&e;o||i.data("bs.scrollspy",o=new s(this,r)),"string"==typeof e&&o[e]()})}s.VERSION="3.3.7",s.DEFAULTS={offset:10},s.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},s.prototype.refresh=function(){var s=this,e="offset",i=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(e="position",i=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var s=t(this),o=s.data("target")||s.attr("href"),r=/^#./.test(o)&&t(o);return r&&r.length&&r.is(":visible")&&[[r[e]().top+i,o]]||null}).sort(function(t,s){return t[0]-s[0]}).each(function(){s.offsets.push(this[0]),s.targets.push(this[1])})},s.prototype.process=function(){var t,s=this.$scrollElement.scrollTop()+this.options.offset,e=this.getScrollHeight(),i=this.options.offset+e-this.$scrollElement.height(),o=this.offsets,r=this.targets,l=this.activeTarget;if(this.scrollHeight!=e&&this.refresh(),s>=i)return l!=(t=r[r.length-1])&&this.activate(t);if(l&&s=o[t]&&(void 0===o[t+1]||s a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function e(e){return this.each(function(){var i=t(this),o=i.data("bs.scrollspy"),r="object"==typeof e&&e;o||i.data("bs.scrollspy",o=new s(this,r)),"string"==typeof e&&o[e]()})}s.VERSION="3.3.7",s.DEFAULTS={offset:10},s.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},s.prototype.refresh=function(){var s=this,e="offset",i=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(e="position",i=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var s=t(this),o=s.data("target")||s.attr("href"),r=/^#./.test(o)&&t(o);return r&&r.length&&r.is(":visible")&&[[r[e]().top+i,o]]||null}).sort(function(t,s){return t[0]-s[0]}).each(function(){s.offsets.push(this[0]),s.targets.push(this[1])})},s.prototype.process=function(){var t,s=this.$scrollElement.scrollTop()+this.options.offset,e=this.getScrollHeight(),i=this.options.offset+e-this.$scrollElement.height(),o=this.offsets,r=this.targets,l=this.activeTarget;if(this.scrollHeight!=e&&this.refresh(),s>=i)return l!=(t=r[r.length-1])&&this.activate(t);if(l&&s=o[t]&&(void 0===o[t+1]||sf?"top":!1;if("bottom"==this.affixed)return null!=e?f+this.unpin<=n.top?!1:"bottom":t-o>=f+s?!1:"bottom";var a=null==this.affixed,h=a?f:n.top,r=a?s:i;return null!=e&&e>=f?"top":null!=o&&h+r>=t-o?"bottom":!1},e.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(e.RESET).addClass("affix");var t=this.$target.scrollTop(),i=this.$element.offset();return this.pinnedOffset=i.top-t},e.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},e.prototype.checkPosition=function(){if(this.$element.is(":visible")){var i=this.$element.height(),o=this.options.offset,f=o.top,n=o.bottom,s=Math.max(t(document).height(),t(document.body).height());"object"!=typeof o&&(n=f=o),"function"==typeof f&&(f=o.top(this.$element)),"function"==typeof n&&(n=o.bottom(this.$element));var a=this.getState(s,i,f,n);if(this.affixed!=a){null!=this.unpin&&this.$element.css("top","");var h="affix"+(a?"-"+a:""),r=t.Event(h+".bs.affix");if(this.$element.trigger(r),r.isDefaultPrevented())return;this.affixed=a,this.unpin="bottom"==a?this.getPinnedOffset():null,this.$element.removeClass(e.RESET).addClass(h).trigger(h.replace("affix","affixed")+".bs.affix")}"bottom"==a&&this.$element.offset({top:s-i-n})}};var o=t.fn.affix;t.fn.affix=i,t.fn.affix.Constructor=e,t.fn.affix.noConflict=function(){return t.fn.affix=o,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var e=t(this),o=e.data();o.offset=o.offset||{},null!=o.offsetBottom&&(o.offset.bottom=o.offsetBottom),null!=o.offsetTop&&(o.offset.top=o.offsetTop),i.call(e,o)})})}(jQuery); 2 | -------------------------------------------------------------------------------- /_site/documentation/doks-theme/assets/js/vendor/bootstrap/affix.min.js: -------------------------------------------------------------------------------- 1 | +function(t){"use strict";function i(i){return this.each(function(){var o=t(this),f=o.data("bs.affix"),n="object"==typeof i&&i;f||o.data("bs.affix",f=new e(this,n)),"string"==typeof i&&f[i]()})}var e=function(i,o){this.options=t.extend({},e.DEFAULTS,o),this.$target=t(this.options.target).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(i),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};e.VERSION="3.3.7",e.RESET="affix affix-top affix-bottom",e.DEFAULTS={offset:0,target:window},e.prototype.getState=function(t,i,e,o){var f=this.$target.scrollTop(),n=this.$element.offset(),s=this.$target.height();if(null!=e&&"top"==this.affixed)return e>f?"top":!1;if("bottom"==this.affixed)return null!=e?f+this.unpin<=n.top?!1:"bottom":t-o>=f+s?!1:"bottom";var a=null==this.affixed,h=a?f:n.top,r=a?s:i;return null!=e&&e>=f?"top":null!=o&&h+r>=t-o?"bottom":!1},e.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(e.RESET).addClass("affix");var t=this.$target.scrollTop(),i=this.$element.offset();return this.pinnedOffset=i.top-t},e.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},e.prototype.checkPosition=function(){if(this.$element.is(":visible")){var i=this.$element.height(),o=this.options.offset,f=o.top,n=o.bottom,s=Math.max(t(document).height(),t(document.body).height());"object"!=typeof o&&(n=f=o),"function"==typeof f&&(f=o.top(this.$element)),"function"==typeof n&&(n=o.bottom(this.$element));var a=this.getState(s,i,f,n);if(this.affixed!=a){null!=this.unpin&&this.$element.css("top","");var h="affix"+(a?"-"+a:""),r=t.Event(h+".bs.affix");if(this.$element.trigger(r),r.isDefaultPrevented())return;this.affixed=a,this.unpin="bottom"==a?this.getPinnedOffset():null,this.$element.removeClass(e.RESET).addClass(h).trigger(h.replace("affix","affixed")+".bs.affix")}"bottom"==a&&this.$element.offset({top:s-i-n})}};var o=t.fn.affix;t.fn.affix=i,t.fn.affix.Constructor=e,t.fn.affix.noConflict=function(){return t.fn.affix=o,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var e=t(this),o=e.data();o.offset=o.offset||{},null!=o.offsetBottom&&(o.offset.bottom=o.offsetBottom),null!=o.offsetTop&&(o.offset.top=o.offsetTop),i.call(e,o)})})}(jQuery); 2 | -------------------------------------------------------------------------------- /documentation/doks-theme/assets/js/vendor/bootstrap/scrollspy.min.js: -------------------------------------------------------------------------------- 1 | +function(t){"use strict";function s(e,i){this.$body=t(document.body),this.$scrollElement=t(t(e).is(document.body)?window:e),this.options=t.extend({},s.DEFAULTS,i),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function e(e){return this.each(function(){var i=t(this),o=i.data("bs.scrollspy"),r="object"==typeof e&&e;o||i.data("bs.scrollspy",o=new s(this,r)),"string"==typeof e&&o[e]()})}s.VERSION="3.3.7",s.DEFAULTS={offset:10},s.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},s.prototype.refresh=function(){var s=this,e="offset",i=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(e="position",i=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var s=t(this),o=s.data("target")||s.attr("href"),r=/^#./.test(o)&&t(o);return r&&r.length&&r.is(":visible")&&[[r[e]().top+i,o]]||null}).sort(function(t,s){return t[0]-s[0]}).each(function(){s.offsets.push(this[0]),s.targets.push(this[1])})},s.prototype.process=function(){var t,s=this.$scrollElement.scrollTop()+this.options.offset,e=this.getScrollHeight(),i=this.options.offset+e-this.$scrollElement.height(),o=this.offsets,r=this.targets,l=this.activeTarget;if(this.scrollHeight!=e&&this.refresh(),s>=i)return l!=(t=r[r.length-1])&&this.activate(t);if(l&&s=o[t]&&(void 0===o[t+1]||s a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function e(e){return this.each(function(){var i=t(this),o=i.data("bs.scrollspy"),r="object"==typeof e&&e;o||i.data("bs.scrollspy",o=new s(this,r)),"string"==typeof e&&o[e]()})}s.VERSION="3.3.7",s.DEFAULTS={offset:10},s.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},s.prototype.refresh=function(){var s=this,e="offset",i=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(e="position",i=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var s=t(this),o=s.data("target")||s.attr("href"),r=/^#./.test(o)&&t(o);return r&&r.length&&r.is(":visible")&&[[r[e]().top+i,o]]||null}).sort(function(t,s){return t[0]-s[0]}).each(function(){s.offsets.push(this[0]),s.targets.push(this[1])})},s.prototype.process=function(){var t,s=this.$scrollElement.scrollTop()+this.options.offset,e=this.getScrollHeight(),i=this.options.offset+e-this.$scrollElement.height(),o=this.offsets,r=this.targets,l=this.activeTarget;if(this.scrollHeight!=e&&this.refresh(),s>=i)return l!=(t=r[r.length-1])&&this.activate(t);if(l&&s=o[t]&&(void 0===o[t+1]||s"i" tag field. For altering existing images user may optionally provide a second "i" tag containing the url to the existing image 10 | 11 | 12 | # Params 13 | 14 | ## `model` 15 | 16 | Description: 17 | Specifies the identifier for the AI model to be used for the image generation task. Different models might produce different outcomes. 18 | 19 | Usage: 20 | Set this parameter to the specific ID or name of the AI model you wish to use. This is especially useful if you have multiple models available and you want to select a particular one for a task. Ensure that the specified model is compatible with the task at hand and has been adequately trained or fine-tuned for optimal results. 21 | 22 | ## `lora` 23 | 24 | Description: 25 | Specifies the identifier of a lora. A lora provides weights that can be applied on top of a model. Users can combine models and loras to create unique images. 26 | 27 | ## `ratio` 28 | 29 | Description: 30 | The Ratio of the output image. Allowed ratios are: 31 | 1:1 4:3 16:9 16:10 3:4 9:16 10:16 32 | 33 | ## `negative_prompt` 34 | 35 | Description: 36 | Define a negative prompt that includes what the model should avoid during Generation. This sometimes helps improving the outcome quality 37 | 38 | ## `size` 39 | 40 | Description: 41 | Specifies in the format of `${width}x${height}` (i.e `512x512`, `1024x768`) the exact size/dimension the image will be generated in. This param takes precedence over `ratio`. DVMs SHOULD ignore the job request if unable to fulfill the requested size 42 | 43 | 44 | 45 | # Output 46 | 47 | A link to the generated image(s) 48 | 49 | # Example 1 50 | 51 | ## Generates an output image based on the input prompt and params 52 | 53 | ```json 54 | { 55 | "content": "", 56 | "kind": 5100, 57 | "tags": [ 58 | [ "i", "A purple ostrich watching the sunset", "text" ], 59 | [ "param", "ratio", "4:3"], 60 | [ "param", "negative_prompt", "broken hands, bad quality"] 61 | ] 62 | } 63 | ``` 64 | 65 | # Example 2 66 | 67 | ## Converts the style of an input image 68 | 69 | ```json 70 | { 71 | "content": "", 72 | "kind": 5100, 73 | "tags": [ 74 | [ "i", "https://image.nostr.build/cbfedf544d1ab82d26332bf70c1ea55b8f275ae59a04c3dac175d9cae536725e.jpg", "url" ], 75 | [ "i", "In style of Pablo Picasso", "text" ] 76 | [ "param", "size", "512x512" ] 77 | ] 78 | } 79 | ``` 80 | -------------------------------------------------------------------------------- /doks-theme/_includes/site-footer.html: -------------------------------------------------------------------------------- 1 | {% if site.doks.footer.content.logo.image or site.doks.footer.content.logo.text or site.doks.footer.content.copyright or site.doks.footer.social_list %} 2 |
3 |
4 |
5 |
6 | {% if site.doks.footer.content.logo.text %} 7 | 8 | {% elsif site.doks.footer.content.logo.image %} 9 | 12 | {% endif %} 13 | {% if site.doks.footer.content.copyright %} 14 |
15 | 16 | {% endif %} 17 |
18 | {% if site.doks.footer.social_list %} 19 |
20 | 29 |
30 | {% endif %} 31 |
32 |
33 |
34 | {% endif %} 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | {% include google-analytics.html %} 43 | -------------------------------------------------------------------------------- /doks-theme/_sass/components/_social-list.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Social list (components/_social-list.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | .social-list { 7 | margin-bottom: 0; 8 | 9 | li { 10 | display: inline-block; 11 | padding: 0; 12 | 13 | + li { 14 | margin-left: 1.25rem; 15 | margin-bottom: 1.25rem; 16 | } 17 | 18 | &::before { 19 | display: none; 20 | } 21 | } 22 | } 23 | 24 | /* ----- Item ----- */ 25 | .social-list__item { 26 | @include link-reset; 27 | display: block; 28 | color: $color-social-item; 29 | font-size: 1.875em; 30 | line-height: 1; 31 | transition: color .2s; 32 | 33 | &:hover, 34 | &:focus, 35 | &:active { 36 | &.social-list__item--behance { 37 | color: #1769ff; 38 | } 39 | 40 | &.social-list__item--bitbucket { 41 | color: #205081; 42 | } 43 | 44 | &.social-list__item--codepen { 45 | color: #494949; 46 | } 47 | 48 | &.social-list__item--dribbble { 49 | color: #ea4c89; 50 | } 51 | 52 | &.social-list__item--dropbox { 53 | color: #007ee5; 54 | } 55 | 56 | &.social-list__item--facebook { 57 | color: #3b5998; 58 | } 59 | 60 | &.social-list__item--github { 61 | color: #333; 62 | } 63 | 64 | &.social-list__item--gitlab { 65 | color: #fc6d26; 66 | } 67 | 68 | &.social-list__item--google-plus { 69 | color: #dd4b39; 70 | } 71 | 72 | &.social-list__item--gulp { 73 | color: #DA4648; 74 | } 75 | 76 | &.social-list__item--instagram { 77 | color: #e1306c; 78 | } 79 | 80 | &.social-list__item--kickstarter { 81 | color: #2bde73; 82 | } 83 | 84 | &.social-list__item--linkedin { 85 | color: #0077b5; 86 | } 87 | 88 | &.social-list__item--medium { 89 | color: #00ab6c; 90 | } 91 | 92 | &.social-list__item--meetup { 93 | color: #e0393e; 94 | } 95 | 96 | &.social-list__item--pocket { 97 | color: #ef4056; 98 | } 99 | 100 | &.social-list__item--producthunt { 101 | color: #da552f; 102 | } 103 | 104 | &.social-list__item--reddit { 105 | color: #ff4500; 106 | } 107 | 108 | &.social-list__item--skype { 109 | color: #00aff0; 110 | } 111 | 112 | &.social-list__item--slack { 113 | color: #3eb991; 114 | } 115 | 116 | &.social-list__item--stackoverflow { 117 | color: #f48024; 118 | } 119 | 120 | &.social-list__item--trello { 121 | color: #0079bf; 122 | } 123 | 124 | &.social-list__item--tumblr { 125 | color: #35465c; 126 | } 127 | 128 | &.social-list__item--twitter { 129 | color: #1da1f2; 130 | } 131 | 132 | &.social-list__item--youtube { 133 | color: #cd201f; 134 | } 135 | } 136 | 137 | .icon { 138 | display: block; 139 | } 140 | } 141 | -------------------------------------------------------------------------------- /kinds/5201.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Video Translation 4 | description: Job request to translate video audio content into target language with or without subtitles. 5 | --- 6 | 7 | # Input 8 | 9 | Clients provide a link to the input video or a reference to an event or job ID. The ID or link can either point directly to a media file (e.g. ending with .mp4) or to a social media share link, e.g. a Tweet or a YouTube video. 10 | 11 | # Params 12 | 13 | ## `language` 14 | 15 | Specifies the output language of the video. Input language is auto-detected. 16 | 17 | ``` 18 | [ "param", "language", "es"] 19 | ``` 20 | 21 | | ID | Language | 22 | | ---- | --------- | 23 | | en | English | 24 | | jp | Japanese | 25 | | cn | Chinese | 26 | | de | German | 27 | | in | Tamil | 28 | | fr | French | 29 | | kr | Korean | 30 | | br | Portuguese (Brazil) | 31 | | pt | Portuguese (Portugal) | 32 | | it | Italian | 33 | | es | Spanish | 34 | | id | Indonesian | 35 | | nl | Dutch | 36 | | tr | Turkish | 37 | | ph | Filipino | 38 | | pl | Polish | 39 | | se | Swedish | 40 | | bg | Bulgarian | 41 | | ro | Romanian | 42 | | se | Arabic (Saudi Arabia) | 43 | | ae | Arabic (UAE) | 44 | | cz | Czech | 45 | | gr | Greek | 46 | | fi | Finnish | 47 | | hr | Croatian | 48 | | my | Malay | 49 | | sk | Slovak | 50 | | dk | Danish | 51 | | ua | Ukrainian | 52 | 53 | 54 | ## `subtitle` 55 | 56 | Optional parameter. Specifies the language for subtitle captions that be burned into the video. 57 | 58 | ``` 59 | [ "param", "subtitle", "en"] 60 | ``` 61 | 62 | 63 | ## `range` 64 | 65 | Optional parameter. Specifies a range if the video translation should be targeted to a specific timestamp range. 66 | 67 | ``` 68 | [ "param", "range", "", "" ] 69 | ``` 70 | 71 | 72 | ## `format` 73 | 74 | Optional. If set the DVM uses the format to convert the video to the given format, otherwise it's up to the DVM to choose an output format. By using a format such as mp3, the video might also be converted to an audio file. 75 | 76 | ``` 77 | [ "output", "video/mp4" ] 78 | ``` 79 | 80 | 81 | # Output 82 | 83 | A link to the translated video. 84 | 85 | # Example 86 | 87 | ## Generates the output based on the input link and params 88 | 89 | ```json 90 | { 91 | "content": "", 92 | "kind": 5201, 93 | "tags": [ 94 | [ "i", "https://video.nostr.build/401b8475dc5aa523b2edc7fbeb462f09f168aac8f268a598ac3556aca279c7fa.mp4", "url" ], 95 | [ "i", "", "event" ], 96 | [ "i", "", "job" ], 97 | [ "param", "language", "es"], 98 | [ "param", "subtitle", "en"] 99 | ] 100 | } 101 | ``` 102 | -------------------------------------------------------------------------------- /doks-theme/assets/js/vendor/matchHeight.min.js: -------------------------------------------------------------------------------- 1 | !function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){var e=-1,o=-1,n=function(t){return parseFloat(t)||0},a=function(e){var o=1,a=t(e),i=null,r=[];return a.each(function(){var e=t(this),a=e.offset().top-n(e.css("margin-top")),s=r.length>0?r[r.length-1]:null;null===s?r.push(e):Math.floor(Math.abs(i-a))<=o?r[r.length-1]=s.add(e):r.push(e),i=a}),r},i=function(e){var o={byRow:!0,property:"height",target:null,remove:!1};return"object"==typeof e?t.extend(o,e):("boolean"==typeof e?o.byRow=e:"remove"===e&&(o.remove=!0),o)},r=t.fn.matchHeight=function(e){var o=i(e);if(o.remove){var n=this;return this.css(o.property,""),t.each(r._groups,function(t,e){e.elements=e.elements.not(n)}),this}return this.length<=1&&!o.target?this:(r._groups.push({elements:this,options:o}),r._apply(this,o),this)};r.version="0.7.2",r._groups=[],r._throttle=80,r._maintainScroll=!1,r._beforeUpdate=null,r._afterUpdate=null,r._rows=a,r._parse=n,r._parseOptions=i,r._apply=function(e,o){var s=i(o),h=t(e),l=[h],c=t(window).scrollTop(),p=t("html").outerHeight(!0),u=h.parents().filter(":hidden");return u.each(function(){var e=t(this);e.data("style-cache",e.attr("style"))}),u.css("display","block"),s.byRow&&!s.target&&(h.each(function(){var e=t(this),o=e.css("display");"inline-block"!==o&&"flex"!==o&&"inline-flex"!==o&&(o="block"),e.data("style-cache",e.attr("style")),e.css({display:o,"padding-top":"0","padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px",overflow:"hidden"})}),l=a(h),h.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||"")})),t.each(l,function(e,o){var a=t(o),i=0;if(s.target)i=s.target.outerHeight(!1);else{if(s.byRow&&a.length<=1)return void a.css(s.property,"");a.each(function(){var e=t(this),o=e.attr("style"),n=e.css("display");"inline-block"!==n&&"flex"!==n&&"inline-flex"!==n&&(n="block");var a={display:n};a[s.property]="",e.css(a),e.outerHeight(!1)>i&&(i=e.outerHeight(!1)),o?e.attr("style",o):e.css("display","")})}a.each(function(){var e=t(this),o=0;s.target&&e.is(s.target)||("border-box"!==e.css("box-sizing")&&(o+=n(e.css("border-top-width"))+n(e.css("border-bottom-width")),o+=n(e.css("padding-top"))+n(e.css("padding-bottom"))),e.css(s.property,i-o+"px"))})}),u.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||null)}),r._maintainScroll&&t(window).scrollTop(c/p*t("html").outerHeight(!0)),this},r._applyDataApi=function(){var e={};t("[data-match-height], [data-mh]").each(function(){var o=t(this),n=o.attr("data-mh")||o.attr("data-match-height");n in e?e[n]=e[n].add(o):e[n]=o}),t.each(e,function(){this.matchHeight(!0)})};var s=function(e){r._beforeUpdate&&r._beforeUpdate(e,r._groups),t.each(r._groups,function(){r._apply(this.elements,this.options)}),r._afterUpdate&&r._afterUpdate(e,r._groups)};r._update=function(n,a){if(a&&"resize"===a.type){var i=t(window).width();if(i===e)return;e=i}n?-1===o&&(o=setTimeout(function(){s(a),o=-1},r._throttle)):s(a)},t(r._applyDataApi);var h=t.fn.on?"on":"bind";t(window)[h]("load",function(t){r._update(!1,t)}),t(window)[h]("resize orientationchange",function(t){r._update(!0,t)})}); 2 | -------------------------------------------------------------------------------- /_site/doks-theme/assets/js/vendor/matchHeight.min.js: -------------------------------------------------------------------------------- 1 | !function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){var e=-1,o=-1,n=function(t){return parseFloat(t)||0},a=function(e){var o=1,a=t(e),i=null,r=[];return a.each(function(){var e=t(this),a=e.offset().top-n(e.css("margin-top")),s=r.length>0?r[r.length-1]:null;null===s?r.push(e):Math.floor(Math.abs(i-a))<=o?r[r.length-1]=s.add(e):r.push(e),i=a}),r},i=function(e){var o={byRow:!0,property:"height",target:null,remove:!1};return"object"==typeof e?t.extend(o,e):("boolean"==typeof e?o.byRow=e:"remove"===e&&(o.remove=!0),o)},r=t.fn.matchHeight=function(e){var o=i(e);if(o.remove){var n=this;return this.css(o.property,""),t.each(r._groups,function(t,e){e.elements=e.elements.not(n)}),this}return this.length<=1&&!o.target?this:(r._groups.push({elements:this,options:o}),r._apply(this,o),this)};r.version="0.7.2",r._groups=[],r._throttle=80,r._maintainScroll=!1,r._beforeUpdate=null,r._afterUpdate=null,r._rows=a,r._parse=n,r._parseOptions=i,r._apply=function(e,o){var s=i(o),h=t(e),l=[h],c=t(window).scrollTop(),p=t("html").outerHeight(!0),u=h.parents().filter(":hidden");return u.each(function(){var e=t(this);e.data("style-cache",e.attr("style"))}),u.css("display","block"),s.byRow&&!s.target&&(h.each(function(){var e=t(this),o=e.css("display");"inline-block"!==o&&"flex"!==o&&"inline-flex"!==o&&(o="block"),e.data("style-cache",e.attr("style")),e.css({display:o,"padding-top":"0","padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px",overflow:"hidden"})}),l=a(h),h.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||"")})),t.each(l,function(e,o){var a=t(o),i=0;if(s.target)i=s.target.outerHeight(!1);else{if(s.byRow&&a.length<=1)return void a.css(s.property,"");a.each(function(){var e=t(this),o=e.attr("style"),n=e.css("display");"inline-block"!==n&&"flex"!==n&&"inline-flex"!==n&&(n="block");var a={display:n};a[s.property]="",e.css(a),e.outerHeight(!1)>i&&(i=e.outerHeight(!1)),o?e.attr("style",o):e.css("display","")})}a.each(function(){var e=t(this),o=0;s.target&&e.is(s.target)||("border-box"!==e.css("box-sizing")&&(o+=n(e.css("border-top-width"))+n(e.css("border-bottom-width")),o+=n(e.css("padding-top"))+n(e.css("padding-bottom"))),e.css(s.property,i-o+"px"))})}),u.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||null)}),r._maintainScroll&&t(window).scrollTop(c/p*t("html").outerHeight(!0)),this},r._applyDataApi=function(){var e={};t("[data-match-height], [data-mh]").each(function(){var o=t(this),n=o.attr("data-mh")||o.attr("data-match-height");n in e?e[n]=e[n].add(o):e[n]=o}),t.each(e,function(){this.matchHeight(!0)})};var s=function(e){r._beforeUpdate&&r._beforeUpdate(e,r._groups),t.each(r._groups,function(){r._apply(this.elements,this.options)}),r._afterUpdate&&r._afterUpdate(e,r._groups)};r._update=function(n,a){if(a&&"resize"===a.type){var i=t(window).width();if(i===e)return;e=i}n?-1===o&&(o=setTimeout(function(){s(a),o=-1},r._throttle)):s(a)},t(r._applyDataApi);var h=t.fn.on?"on":"bind";t(window)[h]("load",function(t){r._update(!1,t)}),t(window)[h]("resize orientationchange",function(t){r._update(!0,t)})}); 2 | -------------------------------------------------------------------------------- /documentation/doks-theme/assets/js/vendor/matchHeight.min.js: -------------------------------------------------------------------------------- 1 | !function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){var e=-1,o=-1,n=function(t){return parseFloat(t)||0},a=function(e){var o=1,a=t(e),i=null,r=[];return a.each(function(){var e=t(this),a=e.offset().top-n(e.css("margin-top")),s=r.length>0?r[r.length-1]:null;null===s?r.push(e):Math.floor(Math.abs(i-a))<=o?r[r.length-1]=s.add(e):r.push(e),i=a}),r},i=function(e){var o={byRow:!0,property:"height",target:null,remove:!1};return"object"==typeof e?t.extend(o,e):("boolean"==typeof e?o.byRow=e:"remove"===e&&(o.remove=!0),o)},r=t.fn.matchHeight=function(e){var o=i(e);if(o.remove){var n=this;return this.css(o.property,""),t.each(r._groups,function(t,e){e.elements=e.elements.not(n)}),this}return this.length<=1&&!o.target?this:(r._groups.push({elements:this,options:o}),r._apply(this,o),this)};r.version="0.7.2",r._groups=[],r._throttle=80,r._maintainScroll=!1,r._beforeUpdate=null,r._afterUpdate=null,r._rows=a,r._parse=n,r._parseOptions=i,r._apply=function(e,o){var s=i(o),h=t(e),l=[h],c=t(window).scrollTop(),p=t("html").outerHeight(!0),u=h.parents().filter(":hidden");return u.each(function(){var e=t(this);e.data("style-cache",e.attr("style"))}),u.css("display","block"),s.byRow&&!s.target&&(h.each(function(){var e=t(this),o=e.css("display");"inline-block"!==o&&"flex"!==o&&"inline-flex"!==o&&(o="block"),e.data("style-cache",e.attr("style")),e.css({display:o,"padding-top":"0","padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px",overflow:"hidden"})}),l=a(h),h.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||"")})),t.each(l,function(e,o){var a=t(o),i=0;if(s.target)i=s.target.outerHeight(!1);else{if(s.byRow&&a.length<=1)return void a.css(s.property,"");a.each(function(){var e=t(this),o=e.attr("style"),n=e.css("display");"inline-block"!==n&&"flex"!==n&&"inline-flex"!==n&&(n="block");var a={display:n};a[s.property]="",e.css(a),e.outerHeight(!1)>i&&(i=e.outerHeight(!1)),o?e.attr("style",o):e.css("display","")})}a.each(function(){var e=t(this),o=0;s.target&&e.is(s.target)||("border-box"!==e.css("box-sizing")&&(o+=n(e.css("border-top-width"))+n(e.css("border-bottom-width")),o+=n(e.css("padding-top"))+n(e.css("padding-bottom"))),e.css(s.property,i-o+"px"))})}),u.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||null)}),r._maintainScroll&&t(window).scrollTop(c/p*t("html").outerHeight(!0)),this},r._applyDataApi=function(){var e={};t("[data-match-height], [data-mh]").each(function(){var o=t(this),n=o.attr("data-mh")||o.attr("data-match-height");n in e?e[n]=e[n].add(o):e[n]=o}),t.each(e,function(){this.matchHeight(!0)})};var s=function(e){r._beforeUpdate&&r._beforeUpdate(e,r._groups),t.each(r._groups,function(){r._apply(this.elements,this.options)}),r._afterUpdate&&r._afterUpdate(e,r._groups)};r._update=function(n,a){if(a&&"resize"===a.type){var i=t(window).width();if(i===e)return;e=i}n?-1===o&&(o=setTimeout(function(){s(a),o=-1},r._throttle)):s(a)},t(r._applyDataApi);var h=t.fn.on?"on":"bind";t(window)[h]("load",function(t){r._update(!1,t)}),t(window)[h]("resize orientationchange",function(t){r._update(!0,t)})}); 2 | -------------------------------------------------------------------------------- /_site/documentation/doks-theme/assets/js/vendor/matchHeight.min.js: -------------------------------------------------------------------------------- 1 | !function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){var e=-1,o=-1,n=function(t){return parseFloat(t)||0},a=function(e){var o=1,a=t(e),i=null,r=[];return a.each(function(){var e=t(this),a=e.offset().top-n(e.css("margin-top")),s=r.length>0?r[r.length-1]:null;null===s?r.push(e):Math.floor(Math.abs(i-a))<=o?r[r.length-1]=s.add(e):r.push(e),i=a}),r},i=function(e){var o={byRow:!0,property:"height",target:null,remove:!1};return"object"==typeof e?t.extend(o,e):("boolean"==typeof e?o.byRow=e:"remove"===e&&(o.remove=!0),o)},r=t.fn.matchHeight=function(e){var o=i(e);if(o.remove){var n=this;return this.css(o.property,""),t.each(r._groups,function(t,e){e.elements=e.elements.not(n)}),this}return this.length<=1&&!o.target?this:(r._groups.push({elements:this,options:o}),r._apply(this,o),this)};r.version="0.7.2",r._groups=[],r._throttle=80,r._maintainScroll=!1,r._beforeUpdate=null,r._afterUpdate=null,r._rows=a,r._parse=n,r._parseOptions=i,r._apply=function(e,o){var s=i(o),h=t(e),l=[h],c=t(window).scrollTop(),p=t("html").outerHeight(!0),u=h.parents().filter(":hidden");return u.each(function(){var e=t(this);e.data("style-cache",e.attr("style"))}),u.css("display","block"),s.byRow&&!s.target&&(h.each(function(){var e=t(this),o=e.css("display");"inline-block"!==o&&"flex"!==o&&"inline-flex"!==o&&(o="block"),e.data("style-cache",e.attr("style")),e.css({display:o,"padding-top":"0","padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px",overflow:"hidden"})}),l=a(h),h.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||"")})),t.each(l,function(e,o){var a=t(o),i=0;if(s.target)i=s.target.outerHeight(!1);else{if(s.byRow&&a.length<=1)return void a.css(s.property,"");a.each(function(){var e=t(this),o=e.attr("style"),n=e.css("display");"inline-block"!==n&&"flex"!==n&&"inline-flex"!==n&&(n="block");var a={display:n};a[s.property]="",e.css(a),e.outerHeight(!1)>i&&(i=e.outerHeight(!1)),o?e.attr("style",o):e.css("display","")})}a.each(function(){var e=t(this),o=0;s.target&&e.is(s.target)||("border-box"!==e.css("box-sizing")&&(o+=n(e.css("border-top-width"))+n(e.css("border-bottom-width")),o+=n(e.css("padding-top"))+n(e.css("padding-bottom"))),e.css(s.property,i-o+"px"))})}),u.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||null)}),r._maintainScroll&&t(window).scrollTop(c/p*t("html").outerHeight(!0)),this},r._applyDataApi=function(){var e={};t("[data-match-height], [data-mh]").each(function(){var o=t(this),n=o.attr("data-mh")||o.attr("data-match-height");n in e?e[n]=e[n].add(o):e[n]=o}),t.each(e,function(){this.matchHeight(!0)})};var s=function(e){r._beforeUpdate&&r._beforeUpdate(e,r._groups),t.each(r._groups,function(){r._apply(this.elements,this.options)}),r._afterUpdate&&r._afterUpdate(e,r._groups)};r._update=function(n,a){if(a&&"resize"===a.type){var i=t(window).width();if(i===e)return;e=i}n?-1===o&&(o=setTimeout(function(){s(a),o=-1},r._throttle)):s(a)},t(r._applyDataApi);var h=t.fn.on?"on":"bind";t(window)[h]("load",function(t){r._update(!1,t)}),t(window)[h]("resize orientationchange",function(t){r._update(!0,t)})}); 2 | -------------------------------------------------------------------------------- /doks-theme/_sass/_variables.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Variables (_variables.scss) 3 | */ 4 | 5 | /* ----- Colors ----- */ 6 | // General 7 | $color-white: #fff !default; 8 | $color-black: #000 !default; 9 | $color-dark: #333 !default; 10 | $color-dark-blue: #253951 !default; 11 | $color-yellow: #f6d000 !default; 12 | 13 | // Base 14 | $color-h2-border: #dadada !default; 15 | $color-horizontal-rule: #dadada !default; 16 | $color-list-prefix: #a0a0a0 !default; 17 | $color-definition-list: #8a8a8a !default; 18 | $color-table-border: #f5f5f5 !default; 19 | $color-table-header-border: #ececec !default; 20 | $color-table-header-bg: #f5f5f5 !default; 21 | 22 | // Code 23 | $color-code: #c0341d !default; 24 | $color-code-bg: #fcefed !default; 25 | $color-pre: #f8f8f2 !default; 26 | $color-pre-border: #3c4654 !default; 27 | 28 | // Section 29 | $color-section-grey: #f5f5f5 !default; 30 | 31 | // Callouts 32 | $color-callout: #f9f9f9 !default; 33 | $color-callout-success: #eaffee !default; 34 | $color-callout-info: #f2f8ff !default; 35 | $color-callout-warning: #fffae9 !default; 36 | $color-callout-danger: #ffedeb !default; 37 | 38 | // Footer 39 | $color-footer-bg: #f5f5f5 !default; 40 | $color-footer-copyright: #bdbdbd !default; 41 | 42 | // Social list 43 | $color-social-item: #bdbdbd !default; 44 | 45 | // Themes 46 | $color-theme-green: #F0FAE6 !default; 47 | $color-theme-blue: #E8F2FC !default; 48 | $color-theme-purple: #FDE8F8 !default; 49 | $color-theme-red: #FFECE6 !default; 50 | $color-theme-yellow: #FCFDE8 !default; 51 | 52 | /* ----- Font families ----- */ 53 | $font-family-primary: 'Noto Sans', sans-serif !default; 54 | $font-family-secondary: 'Montserrat', sans-serif !default; 55 | $font-family-monospace: 'Source Code Pro', monospace !default; 56 | 57 | /* ----- Font sizes ----- */ 58 | // Base 59 | $font-size-base: 1em !default; 60 | 61 | // Headings 62 | $font-size-h1: 2.5em !default; 63 | $font-size-h2: 2em !default; 64 | $font-size-h3: 1.75em !default; 65 | $font-size-h4: 1.5em !default; 66 | $font-size-h5: 1.25em !default; 67 | $font-size-h6: 1em !default; 68 | 69 | // Other 70 | $font-size-small: 0.75em !default; 71 | 72 | /* ----- Line heights ----- */ 73 | // Base 74 | $line-height-base: 1.8em !default; 75 | 76 | // Headings 77 | $line-height-headings: 1.5em !default; 78 | 79 | /* ----- Z Indexes ----- */ 80 | $z-index-offcanvas: 2 !default; 81 | $z-index-offcanvas-toggle: 3 !default; 82 | 83 | /* ----- Media queries breakpoints ----- */ 84 | // Mobile first 85 | $screen-xs-min: 480px !default; // Extra small screens, Phones 86 | $screen-sm-min: 768px !default; // Small screens, Tablets 87 | $screen-md-min: 992px !default; // Medium screens, Desktop 88 | $screen-lg-min: 1200px !default; // Large screens, Wide desktops 89 | 90 | // Desktop first 91 | $screen-xs-max: ($screen-sm-min - 1) !default; 92 | $screen-sm-max: ($screen-md-min - 1) !default; 93 | $screen-md-max: ($screen-lg-min - 1) !default; 94 | 95 | /* ----- Grid system ----- */ 96 | // Columns 97 | $grid-columns: 12 !default; 98 | 99 | // Gutter 100 | $grid-gutter-width: 30px !default; 101 | 102 | // Container 103 | $container-tablet: (720px + $grid-gutter-width) !default; 104 | $container-sm: $container-tablet !default; 105 | $container-desktop: (940px + $grid-gutter-width) !default; 106 | $container-md: $container-desktop !default; 107 | $container-large-desktop: (1140px + $grid-gutter-width) !default; 108 | $container-lg: $container-large-desktop !default; 109 | -------------------------------------------------------------------------------- /doks-theme/_sass/utilities/_visibility.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Visibility (utilities/_visibility.scss) 3 | */ 4 | 5 | /* ----- IE Responsive issue fix ----- */ 6 | @at-root { 7 | @-ms-viewport { 8 | width: device-width; 9 | } 10 | } 11 | 12 | /* ----- Visibility ----- */ 13 | @include responsive-invisibility('.visible-xs'); 14 | @include responsive-invisibility('.visible-sm'); 15 | @include responsive-invisibility('.visible-md'); 16 | @include responsive-invisibility('.visible-lg'); 17 | 18 | .visible-xs-block, 19 | .visible-xs-inline, 20 | .visible-xs-inline-block, 21 | .visible-sm-block, 22 | .visible-sm-inline, 23 | .visible-sm-inline-block, 24 | .visible-md-block, 25 | .visible-md-inline, 26 | .visible-md-inline-block, 27 | .visible-lg-block, 28 | .visible-lg-inline, 29 | .visible-lg-inline-block { 30 | display: none !important; 31 | } 32 | 33 | @media (max-width: $screen-xs-max) { 34 | @include responsive-visibility('.visible-xs'); 35 | } 36 | 37 | .visible-xs-block { 38 | @media (max-width: $screen-xs-max) { 39 | display: block !important; 40 | } 41 | } 42 | 43 | .visible-xs-inline { 44 | @media (max-width: $screen-xs-max) { 45 | display: inline !important; 46 | } 47 | } 48 | 49 | .visible-xs-inline-block { 50 | @media (max-width: $screen-xs-max) { 51 | display: inline-block !important; 52 | } 53 | } 54 | 55 | @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { 56 | @include responsive-visibility('.visible-sm'); 57 | } 58 | 59 | .visible-sm-block { 60 | @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { 61 | display: block !important; 62 | } 63 | } 64 | 65 | .visible-sm-inline { 66 | @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { 67 | display: inline !important; 68 | } 69 | } 70 | 71 | .visible-sm-inline-block { 72 | @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { 73 | display: inline-block !important; 74 | } 75 | } 76 | 77 | @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { 78 | @include responsive-visibility('.visible-md'); 79 | } 80 | 81 | .visible-md-block { 82 | @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { 83 | display: block !important; 84 | } 85 | } 86 | 87 | .visible-md-inline { 88 | @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { 89 | display: inline !important; 90 | } 91 | } 92 | 93 | .visible-md-inline-block { 94 | @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { 95 | display: inline-block !important; 96 | } 97 | } 98 | 99 | @media (min-width: $screen-lg-min) { 100 | @include responsive-visibility('.visible-lg'); 101 | } 102 | 103 | .visible-lg-block { 104 | @media (min-width: $screen-lg-min) { 105 | display: block !important; 106 | } 107 | } 108 | 109 | .visible-lg-inline { 110 | @media (min-width: $screen-lg-min) { 111 | display: inline !important; 112 | } 113 | } 114 | 115 | .visible-lg-inline-block { 116 | @media (min-width: $screen-lg-min) { 117 | display: inline-block !important; 118 | } 119 | } 120 | 121 | @media (max-width: $screen-xs-max) { 122 | @include responsive-invisibility('.hidden-xs'); 123 | } 124 | 125 | @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { 126 | @include responsive-invisibility('.hidden-sm'); 127 | } 128 | 129 | @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { 130 | @include responsive-invisibility('.hidden-md'); 131 | } 132 | 133 | @media (min-width: $screen-lg-min) { 134 | @include responsive-invisibility('.hidden-lg'); 135 | } 136 | -------------------------------------------------------------------------------- /doks-theme/_sass/components/_site-header.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Site header (components/_site-header.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | .site-header { 7 | position: absolute; 8 | width: 100%; 9 | height: 5.625rem; 10 | border-bottom: 1px solid rgba($color-dark-blue, .15); 11 | } 12 | 13 | /* ----- Navigation ----- */ 14 | .site-header__logo { 15 | @include link-reset; 16 | display: block; 17 | float: left; 18 | color: $color-dark-blue; 19 | font-family: $font-family-secondary; 20 | font-weight: bold; 21 | font-size: 2em; 22 | line-height: 5.625rem; 23 | 24 | &:hover, 25 | &:focus, 26 | &:active { 27 | color: $color-dark-blue; 28 | } 29 | 30 | img { 31 | height: calc(5.625rem - 1px); 32 | } 33 | } 34 | 35 | /* ----- Navigation ----- */ 36 | .site-header__nav { 37 | @include list-horizontal; 38 | @include clearfix; 39 | float: right; 40 | margin-bottom: 0; 41 | 42 | li { 43 | + li { 44 | margin-left: 2.5rem; 45 | } 46 | } 47 | 48 | a { 49 | @include link-reset; 50 | display: block; 51 | font-size: .875em; 52 | font-weight: 500; 53 | font-family: $font-family-secondary; 54 | line-height: calc(5.625rem - 1px); 55 | text-transform: uppercase; 56 | border-bottom: 1px solid; 57 | border-color: transparent; 58 | transition: border-color .2s; 59 | 60 | &:hover, 61 | &:focus, 62 | &:active { 63 | border-color: $color-dark-blue; 64 | } 65 | } 66 | } 67 | 68 | /* ----- Offcanvas ----- */ 69 | .offcanvas { 70 | overflow: hidden; 71 | width: 100%; 72 | height: 100%; 73 | text-align: center; 74 | background-color: $color-white; 75 | position: fixed; 76 | top: 0; 77 | bottom: 0; 78 | opacity: 0; 79 | visibility: hidden; 80 | @include translate(0, -1.875rem); 81 | transition: transform .2s, opacity .2s, visibility .2s; 82 | z-index: $z-index-offcanvas; 83 | 84 | .offcanvas-expanded & { 85 | opacity: 1; 86 | visibility: visible; 87 | @include translate(0, 0); 88 | } 89 | } 90 | 91 | /* ----- Offcanvas navigation ----- */ 92 | .offcanvas__nav { 93 | height: 100%; 94 | overflow: scroll; 95 | padding-top: 5rem; 96 | padding-bottom: 5rem; 97 | -webkit-overflow-scrolling: touch; 98 | 99 | li { 100 | padding: 0; 101 | 102 | &::before { 103 | display: none; 104 | } 105 | 106 | + li { 107 | margin-top: 1.25rem; 108 | } 109 | } 110 | 111 | a { 112 | @include link-reset; 113 | color: $color-dark-blue; 114 | font-family: $font-family-secondary; 115 | text-transform: uppercase; 116 | } 117 | } 118 | 119 | /* ----- Offcanvas toggle ----- */ 120 | .offcanvas-toggle { 121 | height: calc(5.625rem - 1px); 122 | width: 5.625rem; 123 | cursor: pointer; 124 | position: fixed; 125 | right: 0; 126 | top: 0; 127 | @include translate3d(0, 0, 0); 128 | z-index: $z-index-offcanvas-toggle; 129 | 130 | span { 131 | display: block; 132 | height: 2px; 133 | width: 1.875rem; 134 | background-color: $color-dark-blue; 135 | position: absolute; 136 | left: 1.875rem; 137 | transition: top .2s, transform .2s, opacity .2s; 138 | 139 | &:first-child { 140 | top: 2.125rem; 141 | } 142 | 143 | &:nth-child(2) { 144 | top: 2.6875rem; 145 | } 146 | 147 | &:last-child { 148 | top: 3.25rem; 149 | } 150 | } 151 | 152 | .offcanvas-expanded & { 153 | span { 154 | &:first-child, 155 | &:last-child { 156 | top: 2.6875rem; 157 | } 158 | 159 | &:first-child { 160 | @include rotate(45); 161 | } 162 | 163 | &:last-child { 164 | @include rotate(-45); 165 | } 166 | 167 | &:nth-child(2) { 168 | opacity: 0; 169 | } 170 | } 171 | } 172 | } 173 | -------------------------------------------------------------------------------- /doks-theme/_sass/objects/_icons.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Icons (objects/_icons.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | @font-face { 7 | font-family: 'icons'; 8 | src: url('../fonts/icons/icons.ttf') format('truetype'), 9 | url('../fonts/icons/icons.woff') format('woff'), 10 | url('../fonts/icons/icons.svg#icons') format('svg'); 11 | font-weight: normal; 12 | font-style: normal; 13 | } 14 | 15 | .icon { 16 | font-family: 'icons' !important; 17 | speak: none; 18 | font-style: normal; 19 | font-weight: normal; 20 | font-variant: normal; 21 | text-transform: none; 22 | line-height: 1; 23 | } 24 | 25 | /* ----- List of icons ----- */ 26 | .icon--behance { 27 | &::before { 28 | content: '\e900'; 29 | } 30 | } 31 | 32 | .icon--bitbucket { 33 | &::before { 34 | content: '\e901'; 35 | } 36 | } 37 | 38 | .icon--codepen { 39 | &::before { 40 | content: '\e902'; 41 | } 42 | } 43 | 44 | .icon--dribbble { 45 | &::before { 46 | content: '\e903'; 47 | } 48 | } 49 | 50 | .icon--dropbox { 51 | &::before { 52 | content: '\e904'; 53 | } 54 | } 55 | 56 | .icon--facebook { 57 | &::before { 58 | content: '\e905'; 59 | } 60 | } 61 | 62 | .icon--github { 63 | &::before { 64 | content: '\e906'; 65 | } 66 | } 67 | 68 | .icon--gitlab { 69 | &::before { 70 | content: '\e907'; 71 | } 72 | } 73 | 74 | .icon--google-plus { 75 | &::before { 76 | content: '\e908'; 77 | } 78 | } 79 | 80 | .icon--gulp { 81 | &::before { 82 | content: '\e909'; 83 | } 84 | } 85 | 86 | .icon--instagram { 87 | &::before { 88 | content: '\e90a'; 89 | } 90 | } 91 | 92 | .icon--kickstarter { 93 | &::before { 94 | content: '\e90b'; 95 | } 96 | } 97 | 98 | .icon--linkedin { 99 | &::before { 100 | content: '\e90c'; 101 | } 102 | } 103 | 104 | .icon--medium { 105 | &::before { 106 | content: '\e90d'; 107 | } 108 | } 109 | 110 | .icon--meetup { 111 | &::before { 112 | content: '\e90e'; 113 | } 114 | } 115 | 116 | .icon--pocket { 117 | &::before { 118 | content: '\e90f'; 119 | } 120 | } 121 | 122 | .icon--producthunt { 123 | &::before { 124 | content: '\e910'; 125 | } 126 | } 127 | 128 | .icon--reddit { 129 | &::before { 130 | content: '\e911'; 131 | } 132 | } 133 | 134 | .icon--skype { 135 | &::before { 136 | content: '\e912'; 137 | } 138 | } 139 | 140 | .icon--slack { 141 | &::before { 142 | content: '\e913'; 143 | } 144 | } 145 | 146 | .icon--stackoverflow { 147 | &::before { 148 | content: '\e914'; 149 | } 150 | } 151 | 152 | .icon--trello { 153 | &::before { 154 | content: '\e915'; 155 | } 156 | } 157 | 158 | .icon--tumblr { 159 | &::before { 160 | content: '\e916'; 161 | } 162 | } 163 | 164 | .icon--twitter { 165 | &::before { 166 | content: '\e917'; 167 | } 168 | } 169 | 170 | .icon--youtube { 171 | &::before { 172 | content: '\e918'; 173 | } 174 | } 175 | 176 | .icon--arrow-down { 177 | &::before { 178 | content: '\e919'; 179 | } 180 | } 181 | 182 | .icon--arrow-left { 183 | &::before { 184 | content: '\e91a'; 185 | } 186 | } 187 | 188 | .icon--arrow-right { 189 | &::before { 190 | content: '\e91b'; 191 | } 192 | } 193 | 194 | .icon--arrow-up { 195 | &::before { 196 | content: '\e91c'; 197 | } 198 | } 199 | 200 | .icon--chevron-down { 201 | &::before { 202 | content: '\e91d'; 203 | } 204 | } 205 | 206 | .icon--chevron-left { 207 | &::before { 208 | content: '\e91e'; 209 | } 210 | } 211 | 212 | .icon--chevron-right { 213 | &::before { 214 | content: '\e91f'; 215 | } 216 | } 217 | 218 | .icon--chevron-up { 219 | &::before { 220 | content: '\e920'; 221 | } 222 | } 223 | 224 | .icon--home { 225 | &::before { 226 | content: '\e921'; 227 | } 228 | } 229 | 230 | .icon--maximize { 231 | &::before { 232 | content: '\e922'; 233 | } 234 | } 235 | 236 | .icon--x { 237 | &::before { 238 | content: '\e923'; 239 | } 240 | } 241 | -------------------------------------------------------------------------------- /doks-theme/_sass/tools/_grid.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Grid (tools/_grid.scss) 3 | */ 4 | 5 | /* ----- Centered container element ----- */ 6 | @mixin container-fixed($gutter: $grid-gutter-width) { 7 | margin-right: auto; 8 | margin-left: auto; 9 | padding-left: floor(($gutter / 2)); 10 | padding-right: ceil(($gutter / 2)); 11 | @include clearfix; 12 | } 13 | 14 | /* ----- Creates a wrapper for a series of columns ----- */ 15 | @mixin make-row($gutter: $grid-gutter-width) { 16 | margin-left: ceil(($gutter / -2)); 17 | margin-right: floor(($gutter / -2)); 18 | @include clearfix; 19 | } 20 | 21 | /* ----- Generate the extra small columns ----- */ 22 | @mixin make-xs-column($columns, $gutter: $grid-gutter-width) { 23 | position: relative; 24 | float: left; 25 | width: percentage(($columns / $grid-columns)); 26 | min-height: 1px; 27 | padding-left: ($gutter / 2); 28 | padding-right: ($gutter / 2); 29 | } 30 | 31 | @mixin make-xs-column-offset($columns) { 32 | margin-left: percentage(($columns / $grid-columns)); 33 | } 34 | 35 | @mixin make-xs-column-push($columns) { 36 | left: percentage(($columns / $grid-columns)); 37 | } 38 | 39 | @mixin make-xs-column-pull($columns) { 40 | right: percentage(($columns / $grid-columns)); 41 | } 42 | 43 | /* ----- Generate the small columns ----- */ 44 | @mixin make-sm-column($columns, $gutter: $grid-gutter-width) { 45 | position: relative; 46 | min-height: 1px; 47 | padding-left: ($gutter / 2); 48 | padding-right: ($gutter / 2); 49 | 50 | @media (min-width: $screen-sm-min) { 51 | float: left; 52 | width: percentage(($columns / $grid-columns)); 53 | } 54 | } 55 | 56 | @mixin make-sm-column-offset($columns) { 57 | @media (min-width: $screen-sm-min) { 58 | margin-left: percentage(($columns / $grid-columns)); 59 | } 60 | } 61 | 62 | @mixin make-sm-column-push($columns) { 63 | @media (min-width: $screen-sm-min) { 64 | left: percentage(($columns / $grid-columns)); 65 | } 66 | } 67 | 68 | @mixin make-sm-column-pull($columns) { 69 | @media (min-width: $screen-sm-min) { 70 | right: percentage(($columns / $grid-columns)); 71 | } 72 | } 73 | 74 | /* ----- Generate the medium columns ----- */ 75 | @mixin make-md-column($columns, $gutter: $grid-gutter-width) { 76 | position: relative; 77 | min-height: 1px; 78 | padding-left: ($gutter / 2); 79 | padding-right: ($gutter / 2); 80 | 81 | @media (min-width: $screen-md-min) { 82 | float: left; 83 | width: percentage(($columns / $grid-columns)); 84 | } 85 | } 86 | 87 | @mixin make-md-column-offset($columns) { 88 | @media (min-width: $screen-md-min) { 89 | margin-left: percentage(($columns / $grid-columns)); 90 | } 91 | } 92 | 93 | @mixin make-md-column-push($columns) { 94 | @media (min-width: $screen-md-min) { 95 | left: percentage(($columns / $grid-columns)); 96 | } 97 | } 98 | 99 | @mixin make-md-column-pull($columns) { 100 | @media (min-width: $screen-md-min) { 101 | right: percentage(($columns / $grid-columns)); 102 | } 103 | } 104 | 105 | /* ----- Generate the large columns ----- */ 106 | @mixin make-lg-column($columns, $gutter: $grid-gutter-width) { 107 | position: relative; 108 | min-height: 1px; 109 | padding-left: ($gutter / 2); 110 | padding-right: ($gutter / 2); 111 | 112 | @media (min-width: $screen-lg-min) { 113 | float: left; 114 | width: percentage(($columns / $grid-columns)); 115 | } 116 | } 117 | 118 | @mixin make-lg-column-offset($columns) { 119 | @media (min-width: $screen-lg-min) { 120 | margin-left: percentage(($columns / $grid-columns)); 121 | } 122 | } 123 | 124 | @mixin make-lg-column-push($columns) { 125 | @media (min-width: $screen-lg-min) { 126 | left: percentage(($columns / $grid-columns)); 127 | } 128 | } 129 | 130 | @mixin make-lg-column-pull($columns) { 131 | @media (min-width: $screen-lg-min) { 132 | right: percentage(($columns / $grid-columns)); 133 | } 134 | } 135 | -------------------------------------------------------------------------------- /_site/ranges/51xx/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Image Manipulation 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 |
21 |
22 |
23 |
24 | 25 |

Image Manipulation

26 | 27 | 28 | 29 | 30 | 31 | 32 | Back 33 | 34 | 35 | 36 |
37 |
38 |
39 | 40 |
41 |
42 |
43 | 44 |
45 |
46 |
47 | 67 |
68 |
69 |
70 | 71 | 72 |
73 |
74 |
75 |
76 | 77 | 78 | 79 | 80 |
81 | 82 | 83 |
84 | 85 |
86 | 95 |
96 | 97 |
98 |
99 |
100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /doks-theme/_layouts/homepage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% include site-head.html %} 5 | 6 | 7 |
8 |
9 |
10 |
11 |
12 |
13 | {% if page.title %} 14 |

{{ page.title }}

15 | {% endif %} 16 | {% if page.description %} 17 |

{{ page.description }}

18 | {% endif %} 19 | {% for button in page.buttons %} 20 | {% if button.external_url == true %} 21 | 22 | {% if button.icon %}{% endif %} 23 | {{ button.content }} 24 | 25 | {% else %} 26 | 27 | {% if button.icon %}{% endif %} 28 | {{ button.content }} 29 | 30 | {% endif %} 31 | {% endfor %} 32 |
33 |
34 |
35 | {% if page.author.title and page.author.description and page.author.title_url %} 36 | 58 | {% endif %} 59 |
60 |
61 |
62 | {% if page.grid_navigation %} 63 |
64 |
65 |
66 |
67 | 85 |
86 |
87 |
88 |
89 | {% endif %} 90 | {% include site-footer.html %} 91 | 92 | 93 | -------------------------------------------------------------------------------- /_site/ranges/59xx/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Others 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |
22 |
23 |
24 |
25 |
26 | 27 |

Others

28 | 29 | 30 |

Jobs that don't fit neatly in other categories

31 | 32 | 33 | 34 | 35 | 36 | Back 37 | 38 | 39 | 40 |
41 |
42 |
43 | 44 |
45 |
46 |
47 | 48 |
49 | 73 |
74 | 75 | 76 |
77 |
78 |
79 |
80 | 81 | 82 | 83 | 84 |
85 | 86 | 87 |
88 | 89 |
90 | 99 |
100 | 101 |
102 |
103 |
104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | -------------------------------------------------------------------------------- /_site/ranges/54xx/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Analytics 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |
22 |
23 |
24 |
25 |
26 | 27 |

Analytics

28 | 29 | 30 |

Jobs where the goal is to analyze nostr events

31 | 32 | 33 | 34 | 35 | 36 | Back 37 | 38 | 39 | 40 |
41 |
42 |
43 | 44 |
45 |
46 |
47 | 48 |
49 | 73 |
74 | 75 | 76 |
77 |
78 |
79 |
80 | 81 | 82 | 83 | 84 |
85 | 86 | 87 |
88 | 89 |
90 | 99 |
100 | 101 |
102 |
103 |
104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | -------------------------------------------------------------------------------- /kinds/5050.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Text Generation 4 | description: Job request to generate text using AI models. 5 | --- 6 | 7 | # Input 8 | 9 | Clients MIGHT provide a seed sentence or a prompt in the "i" tag field field for the AI to continue generating from. 10 | 11 | 12 | # Params 13 | 14 | ## `model` 15 | 16 | Description: 17 | Specifies the identifier for the AI model to be used for the text generation task. Different models might have different capabilities, sizes, training data, or fine-tuning, which can lead to variations in output quality and style. 18 | 19 | Usage: 20 | Set this parameter to the specific ID or name of the AI model you wish to use. This is especially useful if you have multiple models available and you want to select a particular one for a task. Ensure that the specified model is compatible with the task at hand and has been adequately trained or fine-tuned for optimal results. 21 | 22 | For instance, if you have a model specifically trained for medical text generation and another for general-purpose tasks, you might use the Model-Id parameter to specify which one to use based on the context of your request. 23 | 24 | ## `max_tokens` 25 | 26 | Description: 27 | Defines the maximum number of tokens (words, punctuation marks, etc.) that the generated output should contain. It helps to limit the length of the response and ensures that the output does not exceed a certain size. 28 | 29 | Usage: 30 | If you want a short response, set a lower value. For longer responses, increase the value. 31 | 32 | ## `temperature` 33 | 34 | Description: 35 | Controls the randomness of the AI's output. A higher value makes the output more random, while a lower value makes it more deterministic and focused on the most likely completion. 36 | 37 | Usage: 38 | Values typically range from 0.1 to 2.0. A value of 1.0 is neutral, below 1.0 makes the model more conservative, and above 1.0 makes it more creative. 39 | 40 | ## `top_k` 41 | 42 | Description: 43 | Limits the AI to consider only the top K probable next words/tokens when generating a response. It narrows down the choices and can make the output more coherent, especially when set to a reasonable number. 44 | 45 | Usage: 46 | Common values might range from 20 to 50, but it can vary based on the specific task. 47 | ## `top_p` 48 | 49 | Description: 50 | Also known as "nucleus sampling." Instead of just taking the top K probable words, it selects the smallest set of words whose cumulative probability exceeds a threshold P. This allows for more diversity than Top-K alone. 51 | 52 | Usage: 53 | Values are typically between 0.7 and 0.95. A higher value results in more randomness in the output. 54 | 55 | ## `frequency_penalty` 56 | 57 | Description: 58 | Applies a penalty to words/tokens that the model has already used, discouraging it from repeating the same words or phrases. This helps to make the output more diverse and reduces redundancy. 59 | 60 | Usage: 61 | Values greater than 1.0 discourage repetition, while values less than 1.0 encourage it. For instance, setting it to 1.2 might mildly discourage repetition. 62 | 63 | NOTE: All parameters are optional and additional application specific parameters can be added. 64 | 65 | ``` 66 | [ "param", "model", "LLaMA-2" ], 67 | [ "param", "max_tokens", "512" ], 68 | [ "param", "temperature", "0.5" ], 69 | [ "param", "top-k", "50" ], 70 | [ "param", "top-p", "0.7" ], 71 | [ "param", "frequency_penalty", "1" ] 72 | ``` 73 | 74 | # Output 75 | 76 | Including but not limited to: 77 | 78 | * `text/plain` 79 | * `text/markdown` 80 | 81 | # Example 82 | 83 | ## Generates the output based on the input prompt and params 84 | 85 | ```json 86 | { 87 | "content": "", 88 | "kind": 5050, 89 | "tags": [ 90 | [ "i", "what is the capital of France? ", "prompt" ], 91 | [ "param", "model", "LLaMA-2"], 92 | [ "param", "max_tokens", "512"], 93 | [ "param", "temperature", "0.5"], 94 | [ "param", "top-k", "50"], 95 | [ "param", "top-p", "0.7"], 96 | [ "param", "frequency_penalty", "1"] 97 | ] 98 | } 99 | ``` 100 | -------------------------------------------------------------------------------- /_site/ranges/52xx/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Video Manipulation 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 |
21 |
22 |
23 |
24 | 25 |

Video Manipulation

26 | 27 | 28 | 29 | 30 | 31 | 32 | Back 33 | 34 | 35 | 36 |
37 |
38 |
39 | 40 |
41 |
42 |
43 | 44 | 83 | 84 | 85 |
86 |
87 |
88 |
89 | 90 | 91 | 92 | 93 |
94 | 95 | 96 |
97 | 98 |
99 | 108 |
109 | 110 |
111 |
112 |
113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | -------------------------------------------------------------------------------- /_index.html.old: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Data Vending Machines 7 | 8 | 9 |

Data Vending Machines

10 | 11 | 17 | 18 |

Kinds / Job Types

19 | 20 |

Kind 65002: Text Extraction

21 | 22 |

Job request to extract text from some kind of input.

23 | 24 |

Input

25 | 26 |

27 | Jobs MIGHT specify a mime type as the 28 | marker in the i tag. 29 |

30 | 31 |

Params

32 | 33 |
34 |
35 | 36 | [ "param", "range", "<start>", "<end>" ] 37 | 38 |
39 |
40 | Specifies a range on which to focus the transcription 41 | in seconds (for audio inputs) 42 |
43 |
44 | 45 |

Outputs

46 | 47 |

Including but not limited to:

48 | 49 |
    50 |
  • text/vtt
  • 51 |
  • text/plain
  • 52 |
  • text/markdown
  • 53 |
54 | 55 |
56 | 57 |

Kind 65003: Summarization

58 | 59 |

Summarize input

60 | 61 |

Params

62 | 63 |
64 |
65 | 66 | [ "param", "length", "<length>" ] 67 | 68 |
69 |
70 | Specifies the length of the summary in words, sentences, or paragraphs (e.g. "5 paragraphs") 71 |
72 |
73 | 74 |

Outputs

75 | 76 |

Including but not limited to:

77 | 78 |
    79 |
  • text/plain
  • 80 |
  • text/markdown
  • 81 |
82 | 83 |
84 | 85 |

Kind 65004: Translation

86 | 87 |

Summarize input

88 | 89 |

Params

90 | 91 |
92 |
93 | 94 | [ "param", "lang", "<lang>" ] 95 | 96 |
97 |
98 | Desired language in BCP 47 format (e.g. "en-US") 99 |
100 |
101 | 102 |
103 | 104 |

Kind 65003: Summarization

105 | 106 |

Summarize input

107 | 108 |

Params

109 | 110 |
111 |
112 | 113 | [ "param", "length", "<length>" ] 114 | 115 |
116 |
117 | Specifies the length of the summary in words, sentences, or paragraphs (e.g. "5 paragraphs") 118 |
119 |
120 | 121 |

Outputs

122 | 123 |

Including but not limited to:

124 | 125 |
    126 |
  • text/plain
  • 127 |
  • text/markdown
  • 128 |
129 | 130 |
131 | 132 |

Kind 65005: Image Generation

133 | 134 |

Generate image based on some input (e.g. text, an event, another image, etc.)

135 | 136 |

Params

137 | 138 |
139 |
140 | 141 | [ "param", "negative_prompt", "<negative_prompt>" ] 142 | 143 |
144 |
145 | Optional negative prompt to use for image generation 146 |
147 |
148 | 149 | [ "param", "ratio", "<ratio>" ] 150 | 151 |
152 |
153 | Ratio to use for image generation (e.g. "16:9") 154 |
155 |
156 | 157 | [ "param", "model", "<model>" ] 158 | 159 |
160 |
161 | Model to use for image generation 162 |
163 |
164 | 165 |

Examples

166 | 167 | 168 | 169 | -------------------------------------------------------------------------------- /doks-theme/assets/js/scripts.js: -------------------------------------------------------------------------------- 1 | ( function( $ ) { 2 | 'use strict'; 3 | 4 | // Reduce 5 | $.fn.reduce = function( fnReduce, initialValue ) { 6 | var values = this, 7 | previousValue = initialValue; 8 | 9 | values.each( function( index, currentValue ) { 10 | previousValue = fnReduce.call( 11 | currentValue, 12 | 13 | previousValue, 14 | currentValue, 15 | index, 16 | values 17 | ); 18 | } ); 19 | 20 | return previousValue; 21 | }; 22 | 23 | // Title sections 24 | $( ':header[id]' ).each( function() { 25 | var $self = $( this ); 26 | 27 | $self.html( 28 | '# ' + $self.html() 29 | ); 30 | } ); 31 | 32 | var getHeadingLevel = function( $el ) { 33 | var tagName = $el.prop( 'tagName' ).toLowerCase(); 34 | 35 | if ( 36 | ! tagName || 37 | [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ].indexOf( tagName ) === -1 38 | ) { 39 | return false; 40 | } 41 | 42 | return parseInt( tagName.replace( 'h', '' ), 10 ); 43 | }; 44 | 45 | var headings = $( ':header[id]' ).reduce( function( previousValue, currentValue ) { 46 | var currentHeading = { 47 | childrens: [], 48 | }; 49 | 50 | currentHeading.$el = $( currentValue ); 51 | currentHeading.level = getHeadingLevel( currentHeading.$el ); 52 | 53 | if ( ! currentHeading.$el.length || currentHeading.level === false ) { 54 | return previousValue; 55 | } 56 | 57 | previousValue.push( currentHeading ); 58 | 59 | return previousValue; 60 | }, [] ); 61 | 62 | var majik = function( previousValue, currentHeading ) { 63 | if ( ! currentHeading.$el.length || currentHeading.level === false ) { 64 | return previousValue; 65 | } 66 | 67 | if ( previousValue.length < 1 ) { 68 | return [ currentHeading ]; 69 | } 70 | 71 | var previousHeadingLevel = previousValue[ previousValue.length - 1 ].level; 72 | 73 | if ( currentHeading.level > previousHeadingLevel ) { 74 | previousValue[ previousValue.length - 1 ].childrens.push( currentHeading ); 75 | } else { 76 | previousValue.push( currentHeading ); 77 | } 78 | 79 | return previousValue; 80 | }; 81 | 82 | var reduceLevels = function( list ) { 83 | list = list.reduce( majik, [] ); 84 | 85 | var i; 86 | for ( i = 0; i < list.length; i += 1 ) { 87 | if ( ! list[ i ].childrens || ! list[ i ].childrens.length ) { 88 | continue; 89 | } 90 | 91 | list[ i ].childrens = reduceLevels( list[ i ].childrens ); 92 | } 93 | 94 | return list; 95 | }; 96 | 97 | var generateList = function( list, isFirstLevel ) { 98 | var $ul = $( '
    ' ); 99 | $ul.addClass( 'level-' + list[ 0 ].level ); 100 | 101 | if ( true === isFirstLevel ) { 102 | $ul.addClass( 'nav' ); 103 | } 104 | 105 | var i, $li; 106 | for ( i = 0; i < list.length; i += 1 ) { 107 | $li = $( '
  • ' ); 108 | $li.append( 109 | '' + 110 | list[ i ].$el.text().replace( /^#\ /, '' ) + 111 | '' 112 | ); 113 | 114 | if ( list[ i ].childrens && list[ i ].childrens.length ) { 115 | $li.append( generateList( list[ i ].childrens ) ); 116 | $li.addClass( 'has-submenu' ); 117 | } 118 | 119 | $ul.append( $li ); 120 | } 121 | 122 | return $ul; 123 | }; 124 | 125 | if ( headings.length ) { 126 | headings = reduceLevels( headings ); 127 | 128 | generateList( headings, true ).appendTo( '.js-sections' ); 129 | } 130 | 131 | // Smooth anchor scrolling 132 | var $jsSmoothScroll = $( '.js-smooth-scroll' ); 133 | 134 | $jsSmoothScroll.click( function() { 135 | $( 'html, body' ).animate( { 136 | scrollTop: $( $( this ).attr( 'href' ) ).offset().top 137 | }, 1200 ); 138 | 139 | return false; 140 | } ); 141 | 142 | var handleSectionsListSize = function() { 143 | $( '.sections-list' ).css( 'width', $( '.sections-list-wrapper' ).width() ); 144 | }; 145 | 146 | handleSectionsListSize(); 147 | $( window ).on( 'resize', handleSectionsListSize ); 148 | 149 | // Affix init 150 | $( window ).on( 'load', function() { 151 | $( '.js-affix' ).affix( { 152 | offset: { 153 | top: function() { 154 | return ( 155 | this.top = $( '.hero-subheader' ).outerHeight( true ) + 100 156 | ); 157 | }, 158 | bottom: function() { 159 | return ( 160 | this.bottom = $( '.js-footer-area' ).outerHeight( true ) + 80 161 | ); 162 | } 163 | } 164 | } ); 165 | } ); 166 | 167 | // Offcanvas 168 | $( '.offcanvas-toggle' ).on( 'click', function() { 169 | $( 'body' ).toggleClass( 'offcanvas-expanded' ); 170 | } ); 171 | }( jQuery ) ); 172 | -------------------------------------------------------------------------------- /_site/doks-theme/assets/js/scripts.js: -------------------------------------------------------------------------------- 1 | ( function( $ ) { 2 | 'use strict'; 3 | 4 | // Reduce 5 | $.fn.reduce = function( fnReduce, initialValue ) { 6 | var values = this, 7 | previousValue = initialValue; 8 | 9 | values.each( function( index, currentValue ) { 10 | previousValue = fnReduce.call( 11 | currentValue, 12 | 13 | previousValue, 14 | currentValue, 15 | index, 16 | values 17 | ); 18 | } ); 19 | 20 | return previousValue; 21 | }; 22 | 23 | // Title sections 24 | $( ':header[id]' ).each( function() { 25 | var $self = $( this ); 26 | 27 | $self.html( 28 | '# ' + $self.html() 29 | ); 30 | } ); 31 | 32 | var getHeadingLevel = function( $el ) { 33 | var tagName = $el.prop( 'tagName' ).toLowerCase(); 34 | 35 | if ( 36 | ! tagName || 37 | [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ].indexOf( tagName ) === -1 38 | ) { 39 | return false; 40 | } 41 | 42 | return parseInt( tagName.replace( 'h', '' ), 10 ); 43 | }; 44 | 45 | var headings = $( ':header[id]' ).reduce( function( previousValue, currentValue ) { 46 | var currentHeading = { 47 | childrens: [], 48 | }; 49 | 50 | currentHeading.$el = $( currentValue ); 51 | currentHeading.level = getHeadingLevel( currentHeading.$el ); 52 | 53 | if ( ! currentHeading.$el.length || currentHeading.level === false ) { 54 | return previousValue; 55 | } 56 | 57 | previousValue.push( currentHeading ); 58 | 59 | return previousValue; 60 | }, [] ); 61 | 62 | var majik = function( previousValue, currentHeading ) { 63 | if ( ! currentHeading.$el.length || currentHeading.level === false ) { 64 | return previousValue; 65 | } 66 | 67 | if ( previousValue.length < 1 ) { 68 | return [ currentHeading ]; 69 | } 70 | 71 | var previousHeadingLevel = previousValue[ previousValue.length - 1 ].level; 72 | 73 | if ( currentHeading.level > previousHeadingLevel ) { 74 | previousValue[ previousValue.length - 1 ].childrens.push( currentHeading ); 75 | } else { 76 | previousValue.push( currentHeading ); 77 | } 78 | 79 | return previousValue; 80 | }; 81 | 82 | var reduceLevels = function( list ) { 83 | list = list.reduce( majik, [] ); 84 | 85 | var i; 86 | for ( i = 0; i < list.length; i += 1 ) { 87 | if ( ! list[ i ].childrens || ! list[ i ].childrens.length ) { 88 | continue; 89 | } 90 | 91 | list[ i ].childrens = reduceLevels( list[ i ].childrens ); 92 | } 93 | 94 | return list; 95 | }; 96 | 97 | var generateList = function( list, isFirstLevel ) { 98 | var $ul = $( '
      ' ); 99 | $ul.addClass( 'level-' + list[ 0 ].level ); 100 | 101 | if ( true === isFirstLevel ) { 102 | $ul.addClass( 'nav' ); 103 | } 104 | 105 | var i, $li; 106 | for ( i = 0; i < list.length; i += 1 ) { 107 | $li = $( '
    • ' ); 108 | $li.append( 109 | '' + 110 | list[ i ].$el.text().replace( /^#\ /, '' ) + 111 | '' 112 | ); 113 | 114 | if ( list[ i ].childrens && list[ i ].childrens.length ) { 115 | $li.append( generateList( list[ i ].childrens ) ); 116 | $li.addClass( 'has-submenu' ); 117 | } 118 | 119 | $ul.append( $li ); 120 | } 121 | 122 | return $ul; 123 | }; 124 | 125 | if ( headings.length ) { 126 | headings = reduceLevels( headings ); 127 | 128 | generateList( headings, true ).appendTo( '.js-sections' ); 129 | } 130 | 131 | // Smooth anchor scrolling 132 | var $jsSmoothScroll = $( '.js-smooth-scroll' ); 133 | 134 | $jsSmoothScroll.click( function() { 135 | $( 'html, body' ).animate( { 136 | scrollTop: $( $( this ).attr( 'href' ) ).offset().top 137 | }, 1200 ); 138 | 139 | return false; 140 | } ); 141 | 142 | var handleSectionsListSize = function() { 143 | $( '.sections-list' ).css( 'width', $( '.sections-list-wrapper' ).width() ); 144 | }; 145 | 146 | handleSectionsListSize(); 147 | $( window ).on( 'resize', handleSectionsListSize ); 148 | 149 | // Affix init 150 | $( window ).on( 'load', function() { 151 | $( '.js-affix' ).affix( { 152 | offset: { 153 | top: function() { 154 | return ( 155 | this.top = $( '.hero-subheader' ).outerHeight( true ) + 100 156 | ); 157 | }, 158 | bottom: function() { 159 | return ( 160 | this.bottom = $( '.js-footer-area' ).outerHeight( true ) + 80 161 | ); 162 | } 163 | } 164 | } ); 165 | } ); 166 | 167 | // Offcanvas 168 | $( '.offcanvas-toggle' ).on( 'click', function() { 169 | $( 'body' ).toggleClass( 'offcanvas-expanded' ); 170 | } ); 171 | }( jQuery ) ); 172 | -------------------------------------------------------------------------------- /documentation/doks-theme/assets/js/scripts.js: -------------------------------------------------------------------------------- 1 | ( function( $ ) { 2 | 'use strict'; 3 | 4 | // Reduce 5 | $.fn.reduce = function( fnReduce, initialValue ) { 6 | var values = this, 7 | previousValue = initialValue; 8 | 9 | values.each( function( index, currentValue ) { 10 | previousValue = fnReduce.call( 11 | currentValue, 12 | 13 | previousValue, 14 | currentValue, 15 | index, 16 | values 17 | ); 18 | } ); 19 | 20 | return previousValue; 21 | }; 22 | 23 | // Title sections 24 | $( ':header[id]' ).each( function() { 25 | var $self = $( this ); 26 | 27 | $self.html( 28 | '# ' + $self.html() 29 | ); 30 | } ); 31 | 32 | var getHeadingLevel = function( $el ) { 33 | var tagName = $el.prop( 'tagName' ).toLowerCase(); 34 | 35 | if ( 36 | ! tagName || 37 | [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ].indexOf( tagName ) === -1 38 | ) { 39 | return false; 40 | } 41 | 42 | return parseInt( tagName.replace( 'h', '' ), 10 ); 43 | }; 44 | 45 | var headings = $( ':header[id]' ).reduce( function( previousValue, currentValue ) { 46 | var currentHeading = { 47 | childrens: [], 48 | }; 49 | 50 | currentHeading.$el = $( currentValue ); 51 | currentHeading.level = getHeadingLevel( currentHeading.$el ); 52 | 53 | if ( ! currentHeading.$el.length || currentHeading.level === false ) { 54 | return previousValue; 55 | } 56 | 57 | previousValue.push( currentHeading ); 58 | 59 | return previousValue; 60 | }, [] ); 61 | 62 | var majik = function( previousValue, currentHeading ) { 63 | if ( ! currentHeading.$el.length || currentHeading.level === false ) { 64 | return previousValue; 65 | } 66 | 67 | if ( previousValue.length < 1 ) { 68 | return [ currentHeading ]; 69 | } 70 | 71 | var previousHeadingLevel = previousValue[ previousValue.length - 1 ].level; 72 | 73 | if ( currentHeading.level > previousHeadingLevel ) { 74 | previousValue[ previousValue.length - 1 ].childrens.push( currentHeading ); 75 | } else { 76 | previousValue.push( currentHeading ); 77 | } 78 | 79 | return previousValue; 80 | }; 81 | 82 | var reduceLevels = function( list ) { 83 | list = list.reduce( majik, [] ); 84 | 85 | var i; 86 | for ( i = 0; i < list.length; i += 1 ) { 87 | if ( ! list[ i ].childrens || ! list[ i ].childrens.length ) { 88 | continue; 89 | } 90 | 91 | list[ i ].childrens = reduceLevels( list[ i ].childrens ); 92 | } 93 | 94 | return list; 95 | }; 96 | 97 | var generateList = function( list, isFirstLevel ) { 98 | var $ul = $( '
        ' ); 99 | $ul.addClass( 'level-' + list[ 0 ].level ); 100 | 101 | if ( true === isFirstLevel ) { 102 | $ul.addClass( 'nav' ); 103 | } 104 | 105 | var i, $li; 106 | for ( i = 0; i < list.length; i += 1 ) { 107 | $li = $( '
      • ' ); 108 | $li.append( 109 | '' + 110 | list[ i ].$el.text().replace( /^#\ /, '' ) + 111 | '' 112 | ); 113 | 114 | if ( list[ i ].childrens && list[ i ].childrens.length ) { 115 | $li.append( generateList( list[ i ].childrens ) ); 116 | $li.addClass( 'has-submenu' ); 117 | } 118 | 119 | $ul.append( $li ); 120 | } 121 | 122 | return $ul; 123 | }; 124 | 125 | if ( headings.length ) { 126 | headings = reduceLevels( headings ); 127 | 128 | generateList( headings, true ).appendTo( '.js-sections' ); 129 | } 130 | 131 | // Smooth anchor scrolling 132 | var $jsSmoothScroll = $( '.js-smooth-scroll' ); 133 | 134 | $jsSmoothScroll.click( function() { 135 | $( 'html, body' ).animate( { 136 | scrollTop: $( $( this ).attr( 'href' ) ).offset().top 137 | }, 1200 ); 138 | 139 | return false; 140 | } ); 141 | 142 | var handleSectionsListSize = function() { 143 | $( '.sections-list' ).css( 'width', $( '.sections-list-wrapper' ).width() ); 144 | }; 145 | 146 | handleSectionsListSize(); 147 | $( window ).on( 'resize', handleSectionsListSize ); 148 | 149 | // Affix init 150 | $( window ).on( 'load', function() { 151 | $( '.js-affix' ).affix( { 152 | offset: { 153 | top: function() { 154 | return ( 155 | this.top = $( '.hero-subheader' ).outerHeight( true ) + 100 156 | ); 157 | }, 158 | bottom: function() { 159 | return ( 160 | this.bottom = $( '.js-footer-area' ).outerHeight( true ) + 80 161 | ); 162 | } 163 | } 164 | } ); 165 | } ); 166 | 167 | // Offcanvas 168 | $( '.offcanvas-toggle' ).on( 'click', function() { 169 | $( 'body' ).toggleClass( 'offcanvas-expanded' ); 170 | } ); 171 | }( jQuery ) ); 172 | -------------------------------------------------------------------------------- /_site/documentation/doks-theme/assets/js/scripts.js: -------------------------------------------------------------------------------- 1 | ( function( $ ) { 2 | 'use strict'; 3 | 4 | // Reduce 5 | $.fn.reduce = function( fnReduce, initialValue ) { 6 | var values = this, 7 | previousValue = initialValue; 8 | 9 | values.each( function( index, currentValue ) { 10 | previousValue = fnReduce.call( 11 | currentValue, 12 | 13 | previousValue, 14 | currentValue, 15 | index, 16 | values 17 | ); 18 | } ); 19 | 20 | return previousValue; 21 | }; 22 | 23 | // Title sections 24 | $( ':header[id]' ).each( function() { 25 | var $self = $( this ); 26 | 27 | $self.html( 28 | '# ' + $self.html() 29 | ); 30 | } ); 31 | 32 | var getHeadingLevel = function( $el ) { 33 | var tagName = $el.prop( 'tagName' ).toLowerCase(); 34 | 35 | if ( 36 | ! tagName || 37 | [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ].indexOf( tagName ) === -1 38 | ) { 39 | return false; 40 | } 41 | 42 | return parseInt( tagName.replace( 'h', '' ), 10 ); 43 | }; 44 | 45 | var headings = $( ':header[id]' ).reduce( function( previousValue, currentValue ) { 46 | var currentHeading = { 47 | childrens: [], 48 | }; 49 | 50 | currentHeading.$el = $( currentValue ); 51 | currentHeading.level = getHeadingLevel( currentHeading.$el ); 52 | 53 | if ( ! currentHeading.$el.length || currentHeading.level === false ) { 54 | return previousValue; 55 | } 56 | 57 | previousValue.push( currentHeading ); 58 | 59 | return previousValue; 60 | }, [] ); 61 | 62 | var majik = function( previousValue, currentHeading ) { 63 | if ( ! currentHeading.$el.length || currentHeading.level === false ) { 64 | return previousValue; 65 | } 66 | 67 | if ( previousValue.length < 1 ) { 68 | return [ currentHeading ]; 69 | } 70 | 71 | var previousHeadingLevel = previousValue[ previousValue.length - 1 ].level; 72 | 73 | if ( currentHeading.level > previousHeadingLevel ) { 74 | previousValue[ previousValue.length - 1 ].childrens.push( currentHeading ); 75 | } else { 76 | previousValue.push( currentHeading ); 77 | } 78 | 79 | return previousValue; 80 | }; 81 | 82 | var reduceLevels = function( list ) { 83 | list = list.reduce( majik, [] ); 84 | 85 | var i; 86 | for ( i = 0; i < list.length; i += 1 ) { 87 | if ( ! list[ i ].childrens || ! list[ i ].childrens.length ) { 88 | continue; 89 | } 90 | 91 | list[ i ].childrens = reduceLevels( list[ i ].childrens ); 92 | } 93 | 94 | return list; 95 | }; 96 | 97 | var generateList = function( list, isFirstLevel ) { 98 | var $ul = $( '
          ' ); 99 | $ul.addClass( 'level-' + list[ 0 ].level ); 100 | 101 | if ( true === isFirstLevel ) { 102 | $ul.addClass( 'nav' ); 103 | } 104 | 105 | var i, $li; 106 | for ( i = 0; i < list.length; i += 1 ) { 107 | $li = $( '
        • ' ); 108 | $li.append( 109 | '' + 110 | list[ i ].$el.text().replace( /^#\ /, '' ) + 111 | '' 112 | ); 113 | 114 | if ( list[ i ].childrens && list[ i ].childrens.length ) { 115 | $li.append( generateList( list[ i ].childrens ) ); 116 | $li.addClass( 'has-submenu' ); 117 | } 118 | 119 | $ul.append( $li ); 120 | } 121 | 122 | return $ul; 123 | }; 124 | 125 | if ( headings.length ) { 126 | headings = reduceLevels( headings ); 127 | 128 | generateList( headings, true ).appendTo( '.js-sections' ); 129 | } 130 | 131 | // Smooth anchor scrolling 132 | var $jsSmoothScroll = $( '.js-smooth-scroll' ); 133 | 134 | $jsSmoothScroll.click( function() { 135 | $( 'html, body' ).animate( { 136 | scrollTop: $( $( this ).attr( 'href' ) ).offset().top 137 | }, 1200 ); 138 | 139 | return false; 140 | } ); 141 | 142 | var handleSectionsListSize = function() { 143 | $( '.sections-list' ).css( 'width', $( '.sections-list-wrapper' ).width() ); 144 | }; 145 | 146 | handleSectionsListSize(); 147 | $( window ).on( 'resize', handleSectionsListSize ); 148 | 149 | // Affix init 150 | $( window ).on( 'load', function() { 151 | $( '.js-affix' ).affix( { 152 | offset: { 153 | top: function() { 154 | return ( 155 | this.top = $( '.hero-subheader' ).outerHeight( true ) + 100 156 | ); 157 | }, 158 | bottom: function() { 159 | return ( 160 | this.bottom = $( '.js-footer-area' ).outerHeight( true ) + 80 161 | ); 162 | } 163 | } 164 | } ); 165 | } ); 166 | 167 | // Offcanvas 168 | $( '.offcanvas-toggle' ).on( 'click', function() { 169 | $( 'body' ).toggleClass( 'offcanvas-expanded' ); 170 | } ); 171 | }( jQuery ) ); 172 | -------------------------------------------------------------------------------- /_site/ranges/53xx/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Discovery 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
          21 |
          22 |
          23 |
          24 |
          25 |
          26 | 27 |

          Discovery

          28 | 29 | 30 |

          Jobs where the goal is to discover something

          31 | 32 | 33 | 34 | 35 | 36 | Back 37 | 38 | 39 | 40 |
          41 |
          42 |
          43 | 44 |
          45 |
          46 |
          47 | 48 | 87 | 88 | 89 |
          90 |
          91 |
          92 |
          93 | 94 | 95 | 96 | 97 |
          98 | 99 | 100 |
          101 | 102 |
          103 | 112 |
          113 | 114 |
          115 |
          116 |
          117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | -------------------------------------------------------------------------------- /doks-theme/_sass/generic/_base.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Base (generic/_base.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | html { 7 | font-size: 14px; 8 | @include box-sizing(border-box); 9 | -webkit-tap-highlight-color: transparent; 10 | -webkit-font-smoothing: antialiased; 11 | -moz-osx-font-smoothing: grayscale; 12 | 13 | @media (min-width: $screen-sm-min) { 14 | font-size: 16px; 15 | } 16 | } 17 | 18 | body { 19 | color: $color-dark; 20 | font-family: $font-family-primary; 21 | font-size: $font-size-base; 22 | line-height: $line-height-base; 23 | } 24 | 25 | /* ----- Everything ----- */ 26 | * { 27 | &, 28 | &::before, 29 | &::after { 30 | @include box-sizing(inherit); 31 | } 32 | } 33 | 34 | /* ----- Headings ----- */ 35 | h1, .h1, 36 | h2, .h2, 37 | h3, .h3, 38 | h4, .h4, 39 | h5, .h5, 40 | h6, .h6 { 41 | font-family: $font-family-secondary; 42 | font-weight: 400; 43 | line-height: $line-height-headings; 44 | margin: 2.5rem 0 .9375rem 0; 45 | 46 | &[id] { 47 | position: relative; 48 | } 49 | 50 | & + & { 51 | margin-top: 0; 52 | } 53 | } 54 | 55 | h1, .h1 { 56 | font-size: $font-size-h1; 57 | font-weight: 700; 58 | } 59 | 60 | h2, .h2 { 61 | font-size: $font-size-h2; 62 | font-weight: 700; 63 | border-bottom: 1px solid $color-h2-border; 64 | padding-bottom: .5rem; 65 | } 66 | 67 | h3, .h3 { 68 | font-size: $font-size-h3; 69 | font-weight: 500; 70 | } 71 | 72 | h4, .h4 { 73 | font-size: $font-size-h4; 74 | } 75 | 76 | h5, .h5 { 77 | font-size: $font-size-h5; 78 | } 79 | 80 | h6, .h6 { 81 | font-size: $font-size-h6; 82 | } 83 | 84 | /* ----- Inline elements ----- */ 85 | small, 86 | .text-small { 87 | font-size: $font-size-small; 88 | } 89 | 90 | /* ----- Paragraphs ----- */ 91 | p { 92 | margin: 0 0 1.25rem 0; 93 | } 94 | 95 | /* ----- Hyperlinks ----- */ 96 | a { 97 | color: inherit; 98 | text-decoration: none; 99 | border-bottom: .0625em solid; 100 | border-color: inherit; 101 | padding-bottom: .125em; 102 | } 103 | 104 | /* ----- Images ----- */ 105 | img { 106 | max-width: 100%; 107 | height: auto; 108 | vertical-align: top; 109 | } 110 | 111 | /* ----- Horizontal rules ----- */ 112 | hr { 113 | border: 0; 114 | border-top: 1px solid $color-horizontal-rule; 115 | margin: 0 0 1.25rem 0; 116 | } 117 | 118 | /* ----- States ----- */ 119 | ::-moz-selection { 120 | background: rgba($color-yellow, .99); 121 | color: $color-dark-blue; 122 | } 123 | 124 | ::selection { 125 | background: rgba($color-yellow, .99); 126 | color: $color-dark-blue; 127 | } 128 | 129 | /* ----- Quotes ----- */ 130 | blockquote { 131 | margin: 0 0 1.25rem 0; 132 | } 133 | 134 | q { 135 | color: $color-dark-blue; 136 | } 137 | 138 | /* ----- Lists ----- */ 139 | ul { 140 | list-style-type: none; 141 | padding: 0; 142 | margin: 0 0 1.25rem 0; 143 | 144 | li { 145 | position: relative; 146 | padding-left: 1.875rem; 147 | margin-bottom: .3125rem; 148 | 149 | &:before { 150 | content: '\2014'; 151 | color: $color-list-prefix; 152 | position: absolute; 153 | left: 0; 154 | } 155 | } 156 | } 157 | 158 | /* ----- Definition lists ----- */ 159 | dl { 160 | margin: 0 0 1.25rem 0; 161 | 162 | dt { 163 | color: $color-definition-list; 164 | font-weight: 700; 165 | } 166 | 167 | dd { 168 | margin: 0; 169 | } 170 | } 171 | 172 | /* ----- Acronym and Emphasize tags ----- */ 173 | acronym, 174 | em { 175 | font-style: italic; 176 | } 177 | 178 | /* ----- Tables ----- */ 179 | table { 180 | width: 100%; 181 | text-align: left; 182 | font-size: $font-size-base; 183 | border-collapse: collapse; 184 | margin: 0 0 1.25rem 0; 185 | 186 | th, td { 187 | border: 2px solid $color-table-border; 188 | vertical-align: middle; 189 | padding: .625rem .9375rem; 190 | 191 | @media (min-width: $screen-sm-min) { 192 | padding: .8125rem 1.25rem; 193 | } 194 | 195 | a { 196 | border-color: $color-dark; 197 | } 198 | } 199 | 200 | th { 201 | font-family: $font-family-secondary; 202 | text-transform: uppercase; 203 | background-color: $color-table-header-bg; 204 | border-color: $color-table-header-border; 205 | } 206 | } 207 | 208 | .table-responsive { 209 | width: 100%; 210 | overflow-x: scroll; 211 | -webkit-overflow-scrolling: touch; 212 | margin: 0 0 1.25rem 0; 213 | 214 | @media (min-width: $screen-sm-min) { 215 | overflow-x: visible; 216 | } 217 | 218 | table { 219 | min-width: 43.75rem; 220 | margin: 0; 221 | 222 | @media (min-width: $screen-sm-min) { 223 | min-width: 0; 224 | margin: 0; 225 | } 226 | } 227 | } 228 | 229 | /* ----- Iframe ----- */ 230 | iframe { 231 | display: block; 232 | border: 0; 233 | margin: 0 0 1.25rem 0; 234 | } 235 | 236 | /* ----- Button ----- */ 237 | button { 238 | border: 0; 239 | padding: 0; 240 | background-color: transparent; 241 | 242 | &:focus { 243 | outline: none; 244 | } 245 | } 246 | -------------------------------------------------------------------------------- /doks-theme/_sass/generic/_code.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Code (generic/_code.scss) 3 | */ 4 | 5 | /* ----- General ----- */ 6 | code, 7 | kbd, 8 | tt { 9 | font-family: $font-family-monospace; 10 | color: $color-code; 11 | background-color: $color-code-bg; 12 | border-radius: .1875rem; 13 | padding: .125rem .375rem .1875rem .375rem; 14 | } 15 | 16 | pre { 17 | overflow: auto; 18 | border-left: 8px solid $color-pre-border; 19 | margin: 0 0 1.25rem 0; 20 | -webkit-overflow-scrolling: touch; 21 | 22 | code { 23 | color: $color-pre; 24 | background-color: transparent; 25 | border-radius: 0; 26 | padding: 0; 27 | } 28 | } 29 | 30 | /* ----- Highlight ----- */ 31 | .highlight .hll { background-color: #49483e } 32 | pre.highlight { background: #212733; color: $color-pre; padding: 1.5625rem; } 33 | .highlight .c { color: #75715e } /* Comment */ 34 | .highlight .err { color: #960050; background-color: #1e0010 } /* Error */ 35 | .highlight .k { color: #66d9ef } /* Keyword */ 36 | .highlight .l { color: #ae81ff } /* Literal */ 37 | .highlight .n { color: #f8f8f2 } /* Name */ 38 | .highlight .o { color: #f92672 } /* Operator */ 39 | .highlight .p { color: #f8f8f2 } /* Punctuation */ 40 | .highlight .ch { color: #75715e } /* Comment.Hashbang */ 41 | .highlight .cm { color: #75715e } /* Comment.Multiline */ 42 | .highlight .cp { color: #75715e } /* Comment.Preproc */ 43 | .highlight .cpf { color: #75715e } /* Comment.PreprocFile */ 44 | .highlight .c1 { color: #75715e } /* Comment.Single */ 45 | .highlight .cs { color: #75715e } /* Comment.Special */ 46 | .highlight .gd { color: #f92672 } /* Generic.Deleted */ 47 | .highlight .ge { font-style: italic } /* Generic.Emph */ 48 | .highlight .gi { color: #a6e22e } /* Generic.Inserted */ 49 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 50 | .highlight .gu { color: #75715e } /* Generic.Subheading */ 51 | .highlight .kc { color: #66d9ef } /* Keyword.Constant */ 52 | .highlight .kd { color: #66d9ef } /* Keyword.Declaration */ 53 | .highlight .kn { color: #f92672 } /* Keyword.Namespace */ 54 | .highlight .kp { color: #66d9ef } /* Keyword.Pseudo */ 55 | .highlight .kr { color: #66d9ef } /* Keyword.Reserved */ 56 | .highlight .kt { color: #66d9ef } /* Keyword.Type */ 57 | .highlight .ld { color: #e6db74 } /* Literal.Date */ 58 | .highlight .m { color: #ae81ff } /* Literal.Number */ 59 | .highlight .s { color: #e6db74 } /* Literal.String */ 60 | .highlight .na { color: #a6e22e } /* Name.Attribute */ 61 | .highlight .nb { color: #f8f8f2 } /* Name.Builtin */ 62 | .highlight .nc { color: #a6e22e } /* Name.Class */ 63 | .highlight .no { color: #66d9ef } /* Name.Constant */ 64 | .highlight .nd { color: #a6e22e } /* Name.Decorator */ 65 | .highlight .ni { color: #f8f8f2 } /* Name.Entity */ 66 | .highlight .ne { color: #a6e22e } /* Name.Exception */ 67 | .highlight .nf { color: #a6e22e } /* Name.Function */ 68 | .highlight .nl { color: #f8f8f2 } /* Name.Label */ 69 | .highlight .nn { color: #f8f8f2 } /* Name.Namespace */ 70 | .highlight .nx { color: #a6e22e } /* Name.Other */ 71 | .highlight .py { color: #f8f8f2 } /* Name.Property */ 72 | .highlight .nt { color: #f92672 } /* Name.Tag */ 73 | .highlight .nv { color: #f8f8f2 } /* Name.Variable */ 74 | .highlight .ow { color: #f92672 } /* Operator.Word */ 75 | .highlight .w { color: #f8f8f2 } /* Text.Whitespace */ 76 | .highlight .mb { color: #ae81ff } /* Literal.Number.Bin */ 77 | .highlight .mf { color: #ae81ff } /* Literal.Number.Float */ 78 | .highlight .mh { color: #ae81ff } /* Literal.Number.Hex */ 79 | .highlight .mi { color: #ae81ff } /* Literal.Number.Integer */ 80 | .highlight .mo { color: #ae81ff } /* Literal.Number.Oct */ 81 | .highlight .sa { color: #e6db74 } /* Literal.String.Affix */ 82 | .highlight .sb { color: #e6db74 } /* Literal.String.Backtick */ 83 | .highlight .sc { color: #e6db74 } /* Literal.String.Char */ 84 | .highlight .dl { color: #e6db74 } /* Literal.String.Delimiter */ 85 | .highlight .sd { color: #e6db74 } /* Literal.String.Doc */ 86 | .highlight .s2 { color: #e6db74 } /* Literal.String.Double */ 87 | .highlight .se { color: #ae81ff } /* Literal.String.Escape */ 88 | .highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */ 89 | .highlight .si { color: #e6db74 } /* Literal.String.Interpol */ 90 | .highlight .sx { color: #e6db74 } /* Literal.String.Other */ 91 | .highlight .sr { color: #e6db74 } /* Literal.String.Regex */ 92 | .highlight .s1 { color: #e6db74 } /* Literal.String.Single */ 93 | .highlight .ss { color: #e6db74 } /* Literal.String.Symbol */ 94 | .highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ 95 | .highlight .fm { color: #a6e22e } /* Name.Function.Magic */ 96 | .highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */ 97 | .highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */ 98 | .highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */ 99 | .highlight .vm { color: #f8f8f2 } /* Name.Variable.Magic */ 100 | .highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */ 101 | -------------------------------------------------------------------------------- /doks-theme/_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% include site-head.html %} 5 | 6 | 7 | {% include site-header.html %} 8 |
          9 |
          10 |
          11 |
          12 |
          13 |
          14 | {% if page.title %} 15 |

          {{ page.title }}

          16 | {% endif %} 17 | {% if page.description %} 18 |

          {{ page.description }}

          19 | {% endif %} 20 | {% if page.page_nav.prev.content or page.page_nav.next.content %} 21 | {% if page.page_nav.prev.content and page.page_nav.prev.url %} 22 | 23 | 24 | {{ page.page_nav.prev.content }} 25 | 26 | {% endif %} 27 | {% if page.page_nav.next.content and page.page_nav.next.url %} 28 | 29 | 30 | {{ page.page_nav.next.content }} 31 | 32 | {% endif %} 33 | {% endif %} 34 |
          35 |
          36 |
          37 | {% if page.author.title and page.author.description and page.author.title_url %} 38 | 60 | {% endif %} 61 |
          62 |
          63 |
          64 |
          65 |
          66 |
          67 |
          68 |
          69 | {{ content }} 70 |
          71 |
          72 |
          73 |
          74 | 75 |
          76 |
          77 |
          78 |
          79 |
          80 | {% if jekyll.environment == "production" and page.comments == true and site.doks.comments.disqus_forum_shortname %} 81 |
          82 |
          83 |
          84 |
          85 | {% include comments.html %} 86 |
          87 |
          88 |
          89 |
          90 | {% endif %} 91 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /_site/ranges/50xx/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Text Extraction 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
          19 |
          20 |
          21 |
          22 |
          23 |
          24 | 25 |

          Text Extraction

          26 | 27 | 28 | 29 | 30 | 31 | 32 | Back 33 | 34 | 35 | 36 |
          37 |
          38 |
          39 | 40 |
          41 |
          42 |
          43 | 44 | 109 | 110 | 111 |
          112 |
          113 |
          114 |
          115 | 116 | 117 | 118 | 119 |
          120 | 121 | 122 |
          123 | 124 |
          125 | 134 |
          135 | 136 |
          137 |
          138 |
          139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | --------------------------------------------------------------------------------